冒泡排序 Linux下C 实现
冒泡排序 Linux下C 实现
最近有个想法:工作之余,在linux下,用c/c++把常用的算法重写一遍。当然,对算法的认识,我仅限于皮毛,我不可能超越那些前辈先知,但我仍想,用自己的方式演示一遍,只当自娱自乐吧!秉承一贯的原则,不讲大道理,只演示关键代码demo,开始算法之旅的第一个算法-----冒泡排序。
1、编辑文件BubbleSort.c,内如如下:
- #include <stdio.h>
- void bubbleSort(int * pArr, int cnt)
- {
- int i,j,tmp;
- for(i=0;i<cnt;i++)
- {
- for(j=i+1;j<cnt;j++)
- {
- if(*(pArr+i)>*(pArr+j))
- {
- tmp=*(pArr+i);
- *(pArr+i)=*(pArr+j);
- *(pArr+j)=tmp;
- }
- }
- }
- }
- int main(void)
- {
- int cnt;
- printf("input array length:\n");
- scanf("%d",&cnt);
- if(cnt<1)
- {
- printf("array length must be larger 0 \n");
- return 1;
- }
- else
- {
- printf("array length is %d \n",cnt);
- }
- int a[cnt];
- int i;
- for(i=0;i<cnt;i++)
- {
- printf("input arr[%d] value\n",i);
- scanf("%d", &a[i]);
- }
- bubbleSort(a,cnt);
- printf("bubblesort result:\n");
- for(i=0;i<cnt;i++)
- {
- printf("%d ",a[i]);
- }
- printf("\n");
- return 0;
- }
2、编译程序
- [root@localhost gcc]# gcc -o BubbleSort BubbleSort.c
3、执行
- [root@localhost gcc]# ./BubbleSort
- input array length:
- 3
- array length is 3
- input arr[0] value
- 2
- input arr[1] value
- 1
- input arr[2] value
- 4
- bubblesort result:
- 1 2 4
呵呵,用自己的手,亲自再演示一遍,感觉还是不错的!先这样吧,以后不断补充完善这篇文章。希望,自己能坚持下去。
评论暂时关闭