歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 冒泡排序 Linux下C 實現

冒泡排序 Linux下C 實現

日期:2017/3/1 10:27:50   编辑:Linux編程

最近有個想法:工作之余,在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. int main(void)
  19. {
  20. int cnt;
  21. printf("input array length:\n");
  22. scanf("%d",&cnt);
  23. if(cnt<1)
  24. {
  25. printf("array length must be larger 0 \n");
  26. return 1;
  27. }
  28. else
  29. {
  30. printf("array length is %d \n",cnt);
  31. }
  32. int a[cnt];
  33. int i;
  34. for(i=0;i<cnt;i++)
  35. {
  36. printf("input arr[%d] value\n",i);
  37. scanf("%d", &a[i]);
  38. }
  39. bubbleSort(a,cnt);
  40. printf("bubblesort result:\n");
  41. for(i=0;i<cnt;i++)
  42. {
  43. printf("%d ",a[i]);
  44. }
  45. printf("\n");
  46. return 0;
  47. }

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

呵呵,用自己的手,親自再演示一遍,感覺還是不錯的!先這樣吧,以後不斷補充完善這篇文章。希望,自己能堅持下去。

Copyright © Linux教程網 All Rights Reserved