各種排序演算法實現

2021-07-23 00:01:40 字數 1027 閱讀 7061

/*

2023年7月7日20:30:37

排序的目的:查詢

排序是查詢的前提(google搜尋)

分類:

冒泡(穩定o(n^2))

插入(穩定o(n^2)),從前往後依次插入到前面的有序部分,始終保持前面部分有序

選擇(n^2),先從所有序列中選擇最小的數字與第乙個數字互換,再從餘下的序列中尋找次最小值與第二個數字互換。。。

快排(最理想 o(nlogn) 最差o(n^2)),先找第乙個元素的確切位置,把序列分成兩半;再找左邊第乙個元素的位置,分成兩半;再找右邊第乙個元素的位置。。。

歸併(穩定nlgn),先兩個一組排序,保證組內有序;再四個一組排序,保證組內有效;再八個

*/1、氣泡排序

void bubble_sort(int* a, int

len)//有效長度}}

return;

}

2、插入排序

void insert_sort(int* a, int

len)//將無序部分的第乙個元素插入到前面有序部分

a[j+1] = temp;//不滿足條件後跳出迴圈,j 必然 -1

}}

3、選擇排序

void select_sort(int* a, int len)//選擇最小值與第乙個元素交換,再在餘下的元素中選擇次小值與第二個元素交換

}t = a[i];

a[i] = a[min];

a[min] = t;

}}

4、快速排序

int findpos(int* a, int low, int high)

a[low] = val;

return low;

}void quick_sort(int* a, int low, int high)//第二個引數表示第乙個元素的下標,第三個引數表示最後乙個元素的下標

}

各種排序演算法實現

1 選擇排序 最壞情況 時間複雜度為o n 2 平均時間複雜度o n 2 最好情況 時間複雜度為o n 2 最差空間複雜度 需要輔助空間o 1 不是穩定排序 實現 void swap int a,int b void selectionsort int a,int n if k i swap a i...

各種排序演算法java實現

插入排序 package org.rut.util.algorithm.support import org.rut.util.algorithm.sortutil author treeroot since 2006 2 2 version 1.0 public class insertsort ...

各種排序演算法java實現

插入排序 package org.rut.util.algorithm.support import org.rut.util.algorithm.sortutil author treeroot since 2006 2 2 version 1.0 public class insertsort ...