冒泡排序 Linux下C 实现


最近有个想法:工作之余,在linux下,用c/c++把常用的算法重写一遍。当然,对算法的认识,我仅限于皮毛,我不可能超越那些前辈先知,但我仍想,用自己的方式演示一遍,只当自娱自乐吧!秉承一贯的原则,不讲大道理,只演示关键代码demo,开始算法之旅的第一个算法-----冒泡排序。

1、编辑文件BubbleSort.c,内如如下:

  1. #include <stdio.h>   
  2. void bubbleSort(int * pArr, int cnt)  
  3. {  
  4.         int i,j,tmp;  
  5.         for(i=0;i<cnt;i++)  
  6.         {  
  7.                 for(j=i+1;j<cnt;j++)  
  8.                 {  
  9.                         if(*(pArr+i)>*(pArr+j))  
  10.                         {  
  11.                                 tmp=*(pArr+i);  
  12.                                 *(pArr+i)=*(pArr+j);  
  13.                                 *(pArr+j)=tmp;  
  14.                         }  
  15.                 }  
  16.         }  
  17. }  
  18.   
  19.   
  20. int main(void)  
  21. {  
  22.         int cnt;  
  23.         printf("input array length:\n");  
  24.         scanf("%d",&cnt);  
  25.         if(cnt<1)  
  26.         {  
  27.                 printf("array length must be larger 0 \n");  
  28.                 return 1;  
  29.         }  
  30.         else  
  31.         {  
  32.                 printf("array length is %d \n",cnt);  
  33.         }  
  34.         int a[cnt];  
  35.         int i;  
  36.         for(i=0;i<cnt;i++)  
  37.         {  
  38.                 printf("input arr[%d] value\n",i);  
  39.                 scanf("%d", &a[i]);  
  40.         }  
  41.         bubbleSort(a,cnt);  
  42.         printf("bubblesort result:\n");  
  43.         for(i=0;i<cnt;i++)  
  44.         {  
  45.                 printf("%d ",a[i]);  
  46.         }  
  47.         printf("\n");  
  48.         return 0;  
  49. }  

2、编译程序

  1. [root@localhost gcc]# gcc -o BubbleSort BubbleSort.c   

3、执行

  1. [root@localhost gcc]# ./BubbleSort   
  2. input array length:  
  3. 3  
  4. array length is 3   
  5. input arr[0] value  
  6. 2  
  7. input arr[1] value  
  8. 1  
  9. input arr[2] value  
  10. 4  
  11. bubblesort result:  
  12. 1 2 4   

 

呵呵,用自己的手,亲自再演示一遍,感觉还是不错的!先这样吧,以后不断补充完善这篇文章。希望,自己能坚持下去。

相关内容