欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4209|回復: 0
打印 上一主題 下一主題
收起左側

基于C語言的優化冒泡排序核心代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:80436 發表于 2015-5-19 02:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
       閑來無聊,練練腦子,活動一下筋骨。下面是基于C語言的優化冒泡排序核心代碼,復制過去在C語言編譯平臺就能運行。可以很清楚理解冒泡排序的原理。
  1. #include<stdio.h>
  2. void BubbleSort(int k[],int n)  //函數里形參也可以是:int *k
  3. {
  4. int i,j,temp,count1=0,count2=0,flag;
  5. flag=1;
  6. for(i=0;i<n-1&&flag;i++)
  7.     {
  8.     for(j=n-1;j>i;j--)
  9.     {
  10.            count1++;
  11.       flag=0;
  12.      if(k[j-1]>k[j])
  13.      {
  14.              count2++;
  15.            
  16.        temp=k[j-1];
  17.              k[j-1]=k[j];
  18.              k[j]=temp;
  19.        flag=1;
  20.      }
  21.   
  22.     }
  23. }
  24.   printf("總共進行了%d次比較,進行了%d次移動" ,count1,count2);
  25. }

  26. int main(void)//比較,輸出最大值
  27. {
  28.   
  29. // int m, a[10]={ 9,7,0,1,5,4,2,3,6,8 };
  30. //  int m, a[10]={ 9,7,0,1,2,3,4,5,6,8 };  //那么排序的效率就大大增加了;
  31.    int m, a[10]={ 10,0,7,2,34,6,6,8 ,9,0};//那么排序的效率就大大增加了;
  32.     BubbleSort( a,10);
  33.    printf("排序后的結果是:" );
  34.    for(m=0;m<10;m++)
  35.    {
  36.          printf("%d\n\r" ,a[m]);
  37. }
  38. return 0; //結束主函數
  39. }
  40. /* 本函數關鍵要理解兩個for循環的作用;count1和count2,以及flag變量的作用。   */

復制代碼
       代碼雖然很簡單,但是在實際應用中卻很有用。比如,在圓點博士的四軸飛行器AD參數傳輸中就有類似本函數的數字濾波函數;還有手機觸摸屏的觸摸坐標校正也有用到數字濾波。冒泡排序核心代碼是經過優化處理了的,效率相對較高。

        -----王衍

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表