資料結構定義和演算法 排序

2021-10-09 20:50:01 字數 684 閱讀 9675

最好情況 + 最壞情況 + 平均情況時間複雜度;

排序資料量比較小的時候要考慮:係數 + 常數 + 低階;

比較次數和交換次數;

針對排序演算法的空間複雜度,引入原地排序的概念,原地排序演算法就是指空間複雜度為o(1)的排序演算法;

排序的序列中存在等值元素,如果經過排序後,相等元素之間原有的順序不變,就說明這個排序演算法是穩定的;

有序度和逆有序度:

有序元素對: a[i] <= a[j], 如果 i <= j

逆序元素對: a[i] > a[j], 如果 i < j

有序度:陣列中具有有序元素對關係的個數;

逆序度:陣列中具有逆序元素對關係的個數;

滿有序度:對於乙個完全有序的情況,有序度為n*(n -1) / 2,這種情況為滿有序度;

滿有序度 = 有序度 + 逆序度;

排序過程:就是有序度增加,逆序度減少,最後達到滿有序度;

《資料結構與演算法之美》 -- 王爭

資料結構定義和演算法 排序 快速排序

如果要排序下標為p到r之間的一組陣列 選擇p到r之間任意乙個元素做pivot 分割槽點 將小於pivot的元素放在左邊,大於pivot的放在右邊,pivot放在中間。這樣陣列就被分為三個部分,小於pivot的區間a p,q 1 等於pivot的區間a q 大於pivot的區間a q 1,r 根據分治...

資料結構定義和演算法 排序 插入排序

首先將陣列中的資料分為2個區間,即已排序區間和未排序區間 初始已排序區間只有乙個元素,就是陣列的第乙個元素 取未排序區間的元素,插入已排序區間中合適的位置,並保持已排序區間一直有序 重複這個過程,直到未排序中元素為空 效能分析 最小時間複雜度 當資料完全有序時,只需進行遍歷一次插入操作,時間複雜度為...

資料結構和演算法 排序

一 簡單排序 1.氣泡排序o n 2 兩兩比較,反序交換 public static int bubblesort int arr return arr 2.選擇排序o n 2 public static int selectsort int arr if i minindex return arr...