選擇排序:比如在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n-1個資料,找出其中最小的數值與第二個元素交換......第n-1趟遍歷剩下的2個資料,找出其中最小的數值與第n-1個元素交換,至此選擇排序完成。
舉個例子:5 7 6 4 3 8
第一趟: 3 7 6 4 5 8
第二趟: 3 4 6 7 5 8
第三趟: 3 4 5 7 6 8
第四趟: 3 4 5 6
7 8第五趟: 3 4 5 6 7
8
#include/** author:knife
* time:2014.06.13 11:17
* algorithm:選擇排序
*/void
main();
int n = sizeof(intarr)/sizeof(intarr[0]); //
計算整型陣列的長度
intminindex,tmp;
//選擇排序
for(int i = 0; i < n-1; i++)
}if(minindex !=i)
}//列印輸出
for(int i=0; i < n; i++)
printf("\n
");}
[1]
Algorithm 排序演算法
閒來無事回顧一下原來所學的排序演算法,包括冒泡 選擇 插入 希爾 快速 歸併排序,這六種。首先依次講解原理,最後放出實現及測試速度原始碼。我想大部分人學習的第乙個排序演算法就是這個。顧名思義,如泡泡般,越到水面就越大,即經過連續不斷的判斷,選取大 或小 的值進行交換,一輪結束後,未排序資料最後面的就...
Algorithm 排序演算法 堆排序
堆排序是選擇類排序演算法,核心思想依然是選擇最大 小 的元素,與直接選擇排序不同的是,堆排序借助了最大堆的特性,使得最大元素的查詢更加的便利。最大堆 最大堆是二叉堆的乙個形式,最大堆要求根節點的關鍵字是所有節點關鍵字中的最大者,即要求最大堆根節點的關鍵字不小於其左葉子的關鍵字,也不能小於右葉子的關鍵...
Algorithm 基數排序
基數排序 以整形為例 將整形10進製按每位拆分,然後從低位到高位依次比較各個位。主要分為三個過程 分配,先從個位開始,根據位值 0 9 分別放到0 9號桶中 比如53,個位為3,則放入3號桶中 收集,再將放置在0 9號桶中的資料按順序放到陣列中 重複 1 2 過程,從個位到最高位 比如32位無符號整...