Java中常用的排序演算法(動態演示)

2021-09-02 01:29:56 字數 2417 閱讀 8153

穩定:如果a原本在b前面,而a=b,排序之後a仍然在b的前面。

不穩定:如果a原本在b的前面,而a=b,排序之後 a 可能會出現在 b 的後面。

時間複雜度:對排序資料的總的操作次數。反映當n變化時,操作次數呈現什麼規律。

o(n) :  for(int i=0;i<10:i++){};

o(n*n) :  for(int i=0;i<10:i++)};

o(log2n) :  就是將迴圈次數/2;

o(nlog2n) :  就是迴圈資料的次數1分為2;

空間複雜度:是指演算法在計算機內執行時所需儲存空間的度量,它也是資料規模n的函式。

3.1 冒泡

public

static

void

bubblesort

(int

numbers)

}// system.out.println("------------");

}}

3.2 選擇
public

static

void

selectsort

(int

numbers)

}// 將找出最小值與i位置的值互動,把最小值放置在集合最前

temp = numbers[i]

; numbers[i]

= numbers[k]

; numbers[k]

= temp;

// system.out.println(arrays.tostring(array));

}}

3.3 插入
private

static

void

insertsort

(int

numbers)

else

} numbers[j +1]

= temp;

system.out.

println

(j+" "

+arrays.

tostring

(numbers));

}}

3.4 快速
public

static

void

quicksorthelp

(int

arr)

;quicksort

(arr,

0, arr.length-1)

;}public

static

void

quicksort

(int

arr,

int low,

int high)

}public

static

intpartition

(int

arr,

int low,

int high)

swap

(arr,high,low)

; system.out.

println

("[high:"

+high+

"] "

+arrays.

tostring

(arr));

while

(arr[low]

<=base&&low

swap

(arr,high,low)

; system.out.

println

("[low:"

+low+

"] "

+arrays.

tostring

(arr));

} system.out.

println

(arrays.

tostring

(arr));

system.out.

println

("----------------------------");

return low;

}public

static

void

swap

(int

arr,

int high,

int low)

寫技術文章初心

Java中常用的陣列排序演算法

氣泡排序 雙層迴圈實現。外層迴圈控制排序輪數,內層迴圈對比陣列中每個臨近元素的大小,以確定是否交換位置 程式 從小到大 public class bubblesort bubblesort sorter new bubblesort create a bubble sort class object...

面試中常用的演算法 排序

學習演算法的好處 學習演算法的過程其實是乙個提高思維能力的過程。基本的排序演算法 簡單直接幫助迅速寫出沒有bug的 氣泡排序 bubble sort 插入排序 insertion sort 常考的排序演算法 解決絕大部分設計排序問題的關鍵 歸併排序 merge sort 快速排序 quick sor...

STL中常用的排序演算法

merge 例如 vecinta,vecintb,vecintc是用vector宣告的容器,vecinta已包含1,3,5,7,9元素,vecintb已包含2,4,6,8元素 vecintc.resize 9 擴大容量 merge vecinta.begin vecinta.end vecintb....