選擇法排序過程(選擇法)
大家好,小訊來為大家解答以上的問題。選擇法排序過程,選擇法這個很多人還不知道,現(xiàn)在讓我們一起來看看吧!
1、// 我把你的程序修改了下,添加了些注釋,你應(yīng)該會看明白滴// sort(int *, int)函數(shù)是由大到小的排序方法。
2、采用的算法// 是第一次從x[0]...x[4]中選出個最大的數(shù),然后記錄下它的索引,// 如果第一個數(shù)不是最大的,就把第一個數(shù)和最大數(shù)進行交換,使得// x[0]是五個書中的最大數(shù),第二次就從x[1]...x[4]中選一個最大的// 然后把它放在x[1]的位置上。
3、5個數(shù),其實只需要四次就可以排好序滴void sort(int *x,int n){ // i,j都是循環(huán)變量temp是用于交換的臨時變量,max是用于記錄每一趟循環(huán) // 中找到的最大值的下標(biāo)。
4、我這里的temp對應(yīng)你原理的t,max對應(yīng)你原來的k int i, j, temp, max; // 1.外層的for循環(huán)用于控制查找的趟數(shù),n個數(shù)排序,只需要n-1趟排序就可以滴 // 2.你原來是 i<=n-1其實可以改為i 5、 // 3.比如 1 2 3 這三個數(shù)排序,你可以先 假設(shè)第一個數(shù)即1是最大的,然后讓1與第二個 // 4.數(shù)進行比較即1與2比較1 < 2你記下2對應(yīng)的下標(biāo),再讓2與第三個數(shù)比較2 < 3再記下 // 5. 3的下標(biāo)所以3是最大的數(shù)字把3放到1的位置,把1放到3的位置,即交換位置。 6、 // 6.經(jīng)過一次排序后變?yōu)? 1 2 第二次再排1 與2先假設(shè)1是1與2中最大的1<2記下2的下標(biāo) // 7.交換1,2位置變?yōu)? 1 所以3個數(shù)進過兩趟排序后已經(jīng)變?yōu)橛行蛄思? 2 1// N個數(shù)只需N-1趟循環(huán)便可有序,外層循環(huán)用于控制循環(huán)趟數(shù) for(i=0; i 本文到此分享完畢,希望對大家有所幫助。 免責(zé)聲明:本文為轉(zhuǎn)載,非本網(wǎng)原創(chuàng)內(nèi)容,不代表本網(wǎng)觀點。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關(guān)內(nèi)容。