簡單選擇排序是常用的排序,學習交換排序理解交換排序理念,是對其他排序有力的補充。尤其學過交換排序之後,每趟排序都要進行頻繁的交換,如何改進,使用選擇排序,每趟只是記住位置,最後才交換,每趟最多交換一次。
思想:選擇最小的記錄放在第乙個位置,在剩下的記錄中選擇最小的放在第二個位置,依次類推,直到所有記錄有序。
$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...