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.堆排序
classmax_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...