各種排序演算法總結

2022-05-26 15:06:12 字數 1061 閱讀 4363

1.插入排序

//

插入排序

void inssort(int a,int

n) }

2.氣泡排序

//

氣泡排序

//第i次迴圈,保證前面i個元素是有序的

void bubsort(int a, int

n) }

}

3.選擇排序

//

選擇排序

//第i次迴圈找第i小的元素

void selection(int a, int

n) }

swap(a[i], a[min]);

}}

4.快速排序

int partition(int a, int l, int r, int &pivot) //

l和r相遇的位置就是劃分點最後該待在的位置

returnl;}

//快速排序

void qsort(int a, int i, int

j)

5.歸併排序

//

歸併排序

void mergesort(int a,int l,int

r)

//從輔助陣列兩邊,選擇較小的那個數作為排序後的第k個元素

for (int i = l, j = r, k = l; k <= r; k++)

}

6.堆排序

class

max_heap

void

heapsort()

}void siftdown(int pos)

else

break

; }

}void print()

};

各種排序演算法總結

注 以下所講排序,以公升序排序為例!選擇排序 作者思路 在一組數中,選擇第乙個數標記為最小值,在剩下的數中找比它小的數,若找到則交換兩數,標記新的 最小值 然後繼續往下找,這樣一趟下來就可以找到一組數中第二小的值,第二次以第二個數作為最小值,如此迴圈下去。這是最簡單 最基礎的一種排序演算法。例子 1...

各種排序演算法總結

1 插入排序 void insertsort int a,int n a j 1 key 插入排序是穩定的排序,平均和最壞時間複雜度是o n 2 最好的時間複雜度是o n 對應於全部排好序的情況。2 氣泡排序 void bubblesort int a,intn 氣泡排序是穩定的排序,平均和最壞時間...

各種排序演算法總結

created by vencent on 2008.8.29 1.插入排序 1.1 一般插入排序 insertsort int array,int length 1.2 折半插入排序 bininsertsort int array,int length 1.3 希爾排序 shellsort int...