八大內部排序

2022-08-31 12:12:14 字數 1191 閱讀 5159

先來看看8種排序之間的關係:

一、直接插入排序

**如下

1

public

void inerrtsort(int

a) 10 a[j+1] =tem;11}

12 }

//看起來簡單 實則有太多細節

二、希爾排序

public

void shellsort(int

list)

list[j + gap] =temp;

}//縮小增量

gap = gap / 2;}}

三、簡單選擇排序

public void selectsort(int a) 

if(min != i)}}

四、堆排序

第五、氣泡排序

public

void bubblesort(int

a) }}}

六、快排

public

static

void quicksort(int list, int left, int

right)

}/*** 分割陣列,找到分割點

*/public

static

int partition(int list, int left, int

right)

//交換

swap(list, left, right);

while (left < right && list[left] <=first)

//交換

swap(list, left, right);

}//返回分割點所在的位置

return

left;

}/*** 交換陣列中兩個位置的元素

*/public

static

void swap(int list, int left, int

right)

}

七、歸併排序

第八、基數排序

參考:

八大內部排序

排序,就是重新排列表中的元素,使得表中元素滿足按關鍵字有序的過程。排序有許多種,常用的八大內部排序為氣泡排序 插入排序 選擇排序 希爾排序 快速排序 歸併排序 基數排序 堆排序 這幾種排序沒有絕對的優劣,每種排序都有他們適用範圍 氣泡排序每一趟排序可以確定乙個元素的最終位置,若一次掃瞄並沒有元素進行...

八大內部排序演算法

八大內部排序包括 l插入排序 直接插入排序 希爾排序 又稱增量排序 l選擇排序 簡單選擇排序 堆排序l交換排序 氣泡排序 快速排序 l歸併排序 l基數排序 又稱桶排序 排序演算法解析 1 直接插入排序與希爾排序 直接排序與希爾排序同屬於插入排序,不一樣的是,直接排序每次將tmp元素與前面所有的元素進...

八大內部排序 歸併排序

歸併排序 merge sort 將兩個或兩個以上的有序列表組合成乙個新的有序表,合併的m,n長度的兩個表的複雜度為o m n n個數的序列進行歸併共有ceil logn 次,每一次合併都是n常數級別的,所以總的複雜度為o nlogn 同時歸併排序是一種穩定的排序。如下,採用的是利用遞迴的方式書寫,要...