演算法詳情 選擇排序

2021-08-07 17:27:03 字數 701 閱讀 5279

簡單選擇排序是常用的排序,學習交換排序理解交換排序理念,是對其他排序有力的補充。尤其學過交換排序之後,每趟排序都要進行頻繁的交換,如何改進,使用選擇排序,每趟只是記住位置,最後才交換,每趟最多交換一次。   

思想選擇最小的記錄放在第乙個位置,在剩下的記錄中選擇最小的放在第二個位置,依次類推,直到所有記錄有序。

$arr[$j])

} if($k != $i)

} return $arr;

}$arr = array(5,4,3,2,1);

$res = select_sort($arr);

var_dump($res);

// 一次排序

// 1,4,3,2,5

// 1,2,3,4,5

?>

分析:n個數排序,需要n-1趟排序,每一趟最壞的情況比較n-1次,因此最壞的情況就是接近n*n次比較。

結論:

選擇排序的時間複雜度o(n2)

穩定性:不穩定排序,因為存在不相鄰元素之間的交換

選擇詳情標籤

資訊選擇和詳情檢視 成員屬性 必填作用說名 sf ds user 是對於div的id 選擇使用者 否頁面標題 500,300 否彈窗的寬度和高度 預設 750,350 selecturl 是選擇窗的頁面url 需要自己寫 detailurl 是詳情窗的頁面 需要自己寫 celllength 否文字的...

演算法 選擇排序,例項分析選擇排序演算法

選擇排序,將乙個序列看做兩個部分,前面有序,後面無序,每次在後面的無序序列中,選擇乙個最小的元素,交換到前面有序序列的末尾,直到無序序列全部完成交換,即可完成排序 選擇排序是不穩定的排序演算法 有乙個序列 5,2,0,1,3,1,4 第一趟排序 第二趟排序 此時我們看到,經過兩趟排序,前面兩個元素 ...

排序演算法 選擇排序

private static int leftchild int i private static void perc int a,int i,int n for int i 0 ir j break else public static void heasp int r,int n for i 0...