常用排序演算法實現總結

2021-10-08 21:25:38 字數 2581 閱讀 7808

leetcode912. 排序陣列

tips:

class

solution

void

sort

(int

nums,

int lo,

int hi)

intpartition

(int

nums,

int lo,

int hi)

}// 末尾的基準值放置到指標 i 的位置,i 指標之後的數都比基準值大

swap

(nums, i, j)

;// 返回指標 i,作為基準點的位置

return i;

}void

swap

(int

nums,

int i,

int j)

}

通過迭代來完成根據基準的分割槽

class

solution

void

qsort

(int

nums,

int low,

int high)

nums[l]

= tmp;

qsort

(nums, low, l)

;qsort

(nums, l +

1, high);}

}}

class

solution

void

heapsort

(int

nums)

for(

int i = size -

1; i >=

1; i--)}

void

adjust

(int

nums,

int len,

int index)

}}

若帶有後續插入重排的操作則需要用下面的heapify方法(左右孩子先比較)

class

solution

return nums;

}private

void

bulidheap

(int

nums,

int size)

}private

void

heapify

(int

nums,

int k,

int i)

else}}

private

void

swap

(int

nums,

int i,

int j)

}

class

solution}}

return nums;

}private

void

swap

(int

nums,

int i,

int j)

}

選擇當前位置應該放入的對應大小元素(即設定當前位置元素為最小值,若未排序陣列中有比他小的,則交換)

class

solution}if

(min != i)

}return nums;

}private

void

swap

(int

nums,

int i,

int j)

}

不斷從無序陣列中取第乙個元素,而後不斷向前比較,若小於則交換,直到放至其適合位置

class

solution

else}}

return nums;

}}

mergesort負責分,merge負責並(生成當前陣列範圍的新陣列,雙指標一次比較插入)

class

solution

private

void

mergesort

(int

nums,

int l,

int r)

int mid = l +

((r - l)

>>1)

;mergesort

(nums, l, mid)

;mergesort

(nums, mid +

1, r)

;merge

(nums, l, mid, r);}

private

void

merge

(int

nums,

int left,

int mid,

int right)

else

}while

(l <= mid)

while

(m <= right)

for(

int num : tmp)

}}

常用排序演算法總結 選擇排序 java實現

選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...

常用排序演算法總結

總結些常見的排序演算法,方便以後可以重用。資料量不大,為了表達方便就直接使用了陣列。int data null data new int 1.氣泡排序 氣泡排序,從小到大排序 for int i 0 i data.length i 氣泡排序就是說,排序的過程像水裡往上冒的氣泡一樣,每個數字代表乙個氣...

常用排序演算法總結

常用排序演算法總結 選擇排序 對於長度為n的陣列,選擇排序需要大約n2 2詞比較和n次交換。插入排序 對於隨機排列的長度為n且主鍵不重複的陣列 1 平均情況下,需要 n2 4次比較以及 n2 4次交換。2 最壞情況下,需要 n2 2次比較以及 n2 2次交換 3 最好情況下,需要n 1次比較以及0次...