排序演算法合集(Java)

2021-07-28 06:56:24 字數 1967 閱讀 7549

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...