最近有个想法:工作之余,在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、执行