資料結構八大排序

2021-08-20 17:23:48 字數 986 閱讀 6754

//不穩定排序

一、//選擇排序

例如    4   1  8   21    0

i    j

0   4  8  21     1        將i的值存放到minindex中     

arr[j] = tmp    比較minindex和tmp的值   最後互換

/*void select_sort(int *arr,int len)

*/ 三、//直接插入排序

//  穩定的演算法

//無序 o(n^2)

//有序 o(n)

例如  4  8  9   0   5    

(  0  1  2   3   4)  

j   i                               tmp = i   i的值存放到tmp裡面 

判斷arr[j]和arr[i]的大小   如果arr[j]大於arr[i]       arr[j+1] = arr[j]   將後面的值進行覆蓋

如果arr[j]小於arr[i]                 arr[j+1] = tmp      吧tmp裡面的值放j的下乙個位置   

/*void insert_sort(int *arr,int len)

else

} arr[j+1] = tmp; }

}*/四、//(shell)希爾排序  是直接插入的優化

//時間複雜度  o(n^1.5~1.3)  空間複雜度: o(1)  穩定性:不穩定,

如果有一組資料,將這組資料分為這樣的組數。

void shell(int*arr,int len,int gap)

else }

arr[j+gap] = tmp; }

} void shellsort(int *arr,int len) ;

int len = sizeof(arr)/sizeof(arr[0]);

for(int i =0;i

資料結構八大排序演算法

常見的八大排序演算法,他們之間關係如下 直接插入排序 definsert sort l 遍歷陣列中的所有元素,其中0號索引元素預設已排序,因此從1開始 for x in range 1 len l 將該元素與已排序好的前序陣列依次比較,如果該元素小,則交換 range x 1,1,1 從x 1倒序迴...

資料結構常見的八大排序演算法

python實現 排序演算法 內部排序 外部排序 內部排序 插入 選擇 交換 歸併 基數排序 插入排序 直接插入排序 希爾排序 選擇排序 簡單選擇排序 堆排序 交換排序 氣泡排序 快速排序 定義乙個公用函式 function swap myarray,p1,p2 function insertion...

Java版資料結構之八大排序演算法

氣泡排序 氣泡排序 public static void sort int arr for int i 0 iarr j 1 快速排序 基於荷蘭國旗的快速排序 public static void quicksort int arr,int start,int end if start end in...