public
static
void
bubblesort(int a)
}
}}
,氣泡排序的時間複雜度為o(n^2),是穩定的演算法
2.快速排序
public static void quicksort(int a,int l,int r)
a[i]=x;
quicksort(a,l,i-1);
quicksort(a,i+1,r);
}}
快速排序的時間複雜度o(n*logn),不穩定演算法
3.插入排序
public
static
void
insertsort(int a)
if(j!=i-1)
}}
插入排序的時間複雜度o(n^2),穩定的演算法
4.希爾排序
public
static
void
shellsort(int a)
a[k+gap]=tmp;}}
}}
}
希爾排序的時間複雜度與gap有關,當增量為1時,蛻化成插入排序,此時的複雜度為o(n^2),而hibbard增量的希爾排序的時間複雜度為o(n^3/2),不穩定演算法
5.選擇排序
public static void selectsort(int a)
if(min!=i)
}}
選擇排序的時間複雜度為o(n^2),穩定的演算法
6.堆排序
//最大堆的向下調整演算法
publi static
void maxheapdown(int a,int start,int end)
}}//堆排從小到大
public
static
void
heapsortasc(int a,int n)
}//最小堆的向下調整演算法
public
static
void
minheapdown(int a,int start,int end)
}}//堆排序從大到小
public
static
void
heapsortdesc(int a,int n)
}
堆排序的時間複雜度o(n*logn),不穩定演算法
7.歸併排序
public
static
void merge(int a,int start,int mid,int end)
//歸併排序(由上往下)
public
static
void mergesortup2down(int a,int start,int end)
//歸併排序(從下往上)
public atatic void mergedown2up(int a)
public
static
void mergegroups(int a,int len,int gap)
歸併排序的時間複雜度為o(n*logn),穩定的演算法
8.桶排序
public
static
void
bucketsort(int a,int max)
}buckets=null;
}
**:
感謝wangkuiwu大神
排序演算法合集
每次排序將排序範圍內最小的值調換位置到最前面.雙指標的應用 include include using namespace std void bubblesort vector s int main bubblesort s for int i 0 i int s.size i cout 優化 當待...
經典排序演算法合集
前言 作為乙個畢業季的狗子,在已經到來的秋招面前可謂是瑟瑟發抖。在海投簡歷的過程中,一次又一次的筆試,一次又一次的涼涼早就見怪不怪了。但是排序演算法出現的頻率真的比較大,所有現在做乙個學習及總結,應對接下來的筆試和面試 v 首先來乙個總的介紹,基本排序演算法到底有哪些,不說了,直接上圖 總結一下 平...
C 實現排序演算法合集
氣泡排序 相鄰對比 template void bubblesort elementtype arr,int n 選擇排序 每次選出最大數從後往前排 template void selectsort elementtype a,int n tmp a n 1 i a n 1 i a maxindex...