以下是十大經典排序算法:
冒泡排序(Bubble Sort):比較相鄰兩個元素,如果逆序則交換,重復多輪,直到無逆序情況。
選擇排序(Selection Sort):在待排序元素中選擇最小(大)元素,放在已排序序列的起始位置,重復多輪,直到所有元素有序。
插入排序(Insertion Sort):從第二個元素開始,將每個元素插入到已排序序列中的合適位置,重復多輪,直到所有元素有序。
希爾排序(Shell Sort):將待排序序列分割成若干子序列,分別進行插入排序,重復多輪,直到所有元素有序。
歸并排序(Merge Sort):將待排序序列分成若干子序列,對每個子序列進行歸并排序,將有序的子序列合并成一個有序序列,重復多輪,直到所有元素有序。
快速排序(Quick Sort):從序列中選擇一個樞軸元素,將序列分成兩部分,小于等于樞軸元素的放在左邊,大于樞軸元素的放在右邊,對左右兩部分分別遞歸進行快排,重復多輪,直到所有元素有序。
堆排序(Heap Sort):將待排序序列構造成一個大根堆,將堆頂元素(最大值)與末尾元素交換,重復多輪,直到所有元素有序。
計數排序(Counting Sort):根據待排序序列中每個元素出現的次數,計算小于等于每個元素的元素個數,從后往前遍歷待排序序列,將每個元素放在相應位置,重復一輪,直到所有元素有序。
桶排序(Bucket Sort):將待排序序列分到有限數量的桶中,每個桶單獨排序,最后將所有桶的元素按照順序合并成一個序列,重復多輪,直到所有元素有序。
基數排序(Radix Sort):將待排序元素按位數切割成不同的數字,然后按每個位數分別進行排序,重復多輪,直到所有元素有序。
以上排序算法各有優(yōu)缺點,不同場景下應選擇不同的算法來實現排序。