久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

C語言選擇排序算法 程序源碼詳細分析

[復制鏈接]
跳轉到指定樓層
樓主
ID:91350 發表于 2015-10-1 13:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
        選擇排序的思想是在一個無序的數列中先找到最小值,其次將其存儲到數列的最前列或最后列,達到數列由小到大大或有大到小的排列效果。排序算法在實際應用中是非常實用的,個人主要用于數字濾波。本代碼是學習x甲魚《數據結構與算法》的筆記。代碼可以直接復制到Microsoft Visual C++編譯軟件運行。代碼用自己理解的語言做了詳細注釋。在自己的四軸飛行器電位器調速程序中就運用了該函數。

       閑來無聊玩手機時可以看看這個,練練大腦。
      

  1. #include<stdio.h>
  2. void SelectSort(int k[],int n)  //在這個函數里,因為沒有返回值,所以不能用return語句;int *k也可以
  3. {               /* 根據C語言知識:形參“int k[]”是數組入口地址,每個元素占用4個字節,形參數組共占用4*n個字節 */
  4.      int i,j,temp,min,count1=0,count2=0 ;      //加入count1,count2是為了計算程序復雜度
  5.    for(i=0;i<n-1;i++)
  6.     {
  7.           min=i;           //保證從首元素開始逐個比較,這一句很重要!
  8.        for(j=i+1;j< n;j++)//“j=i+1”本元素和下一個元素
  9.        {
  10.               // count1++;
  11.    
  12.      if(k[j]<k[min])//注意!這里如果改成“k[j]>k[min]”就是反序排列了!
  13.      {
  14.            /* 如果下一個元素比前一個元素大,就將二者位置交換,確保k[min]是該數列中的最小值 */
  15.                 /* 通過這一層for循環將最小值與數列中每個元素比較一次,并交換位置確保將該數列中的最小值存放在i指針處 */
  16.               count1++;            //比較次數
  17.              min=j;             //貌似簡單,卻有技術含量!確保k[min]是該輪循環比較中的最小值
  18.             //換句話說,在該輪循環比較中讓每一個元素與最小值k[min]比較,最終實現確保k[min]是該數列中的最小值
  19.      }

  20.     }
  21.     if(min!=i)//如果min不等于i,說明位置發生了交換;并將最小值交換到數序前列;
  22.     {
  23.          temp=k[min];
  24.          k[min]=k[i];
  25.          k[i]=temp; //將最小值存放在數序前列;
  26.           count2++; //計算交換位置次數
  27.    
  28.     }
  29. }
  30.   printf("總共進行了%d次比較,進行了%d次移動" ,count1,count2);
  31. }

  32. int main(void)//比較,輸出最大值
  33. {
  34.   
  35. // int m, a[10]={ 0,1,5,4,2,3,6,8 ,7,9};
  36. //  int m, a[10]={ 9,7,0,1,2,3,4,5,6,8 };  //那么排序的效率就大大增加了;
  37.    int m, a[10]={25,10,7,2,34,6,6,8 ,9,0};//那么排序的效率就大大增加了;
  38.     SelectSort( a,10);
  39.    printf("排序后的結果是:\n\r" );
  40.    for(m=0;m<10;m++)
  41.    {
  42.    
  43.       printf("%d\n\r" ,a[m]);
  44.   
  45.    }
  46.    // printf("\n\n" );

  47. return 0; //結束主函數
  48. }
復制代碼



/* 本例程學習:選擇排序的效率比優化后的冒泡排序效率略高,更易理解   */

-----王衍




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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区二区三区中文在线 | 天堂网avav | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 国产高清免费 | 91精品久久久久久久久久入口 | 嫩草黄色影院 | av国产精品| 国产精品久久久久aaaa九色 | 国产wwwcom | 欧美伦理一区 | 日本久久久一区二区三区 | 在线a视频网站 | 精品久久国产老人久久综合 | 99久久日韩精品免费热麻豆美女 | 欧美精品在线免费观看 | 国产精品久久视频 | h片在线观看免费 | 国产成人av在线 | 久久av一区二区三区 | 天天草天天爱 | 国产一级片免费视频 | 日韩在线免费 | 国产欧美日韩精品在线观看 | 奇米在线 | 中文字幕第一页在线 | 一区二区av| 久久久91精品国产一区二区精品 | 黑人巨大精品欧美一区二区免费 | 精品中文字幕在线观看 | 国产成人免费视频网站高清观看视频 | av午夜激情 | 成人精品鲁一区一区二区 | 亚洲欧美一区在线 | 久久免费精品视频 | 国产一区二区三区亚洲 | 成人国产精品一级毛片视频毛片 | 亚洲欧美中文日韩在线v日本 | 99在线播放 | 国产高清视频一区 | 成人动慢 | 欧美理论 |