java資料結構 排序

2021-08-01 20:17:40 字數 1413 閱讀 9824

資料的移動方式,可分為「直接移動」和「邏輯移動」兩種。直接移動改變兩個資料的位置,而邏輯移動,則是改變資料的指標。

資料移動使用的記憶體:內部排序,排序的資料量小,可以完全在記憶體中進行。外部排序,排序的資料量無法直接在記憶體內進行排序,而必須使用輔助儲存器。

排序演算法的選擇,通常由以下幾點決定

演算法是否穩定,排序過後,兩個相同值的記錄位置先後順序不變,則為穩定。

時間複雜度

空間複雜度

內部排序法簡介 排序

排序名稱

排序特性

簡單排序法

氣泡排序法(bubble sort)

穩定排序法;空間複雜度為最佳,只需乙個額外空間o(1)

選擇排序法

不穩定排序法;複雜度為最佳,只需乙個額外空間o(1)

插入排序發

穩定排序法;空間複雜度為最佳,只需乙個額外空間o(1)

希爾排序法

穩定排序法;空間複雜度為最佳,只需乙個額外空間o(1)

高階排序法

快速排序法

不穩定排序法;空間複雜度最差為o(n),最佳為o(log2n)

堆積排序法

不穩定排序法;空間複雜度為最佳,只需乙個額外空間o(1)

基數排序法

穩定排序法;空間複雜度為o(np),n為原始資料的個數,p為基地

**如下

package com.cjm.mvnbook.test8.sourcetest;

public

class sorttest ;

shellsort(arr);

}//氣泡排序

public

static

void

bubblesort(int arr)}}

}//選擇排序

public

static

void

selectsort(int arr)}}

}//插入排序

public

static

void

insertsort(int arr)

arr[j+1] = tmp;

showdata(arr);}}

//希爾排序

public

static

void

shellsort(int arr)

arr[jmp + j] = tmp;

}system.out.println("第" + (k++) + "次排序:");

showdata(arr);

jmp = jmp/2;}}

public

static

void

showdata(int arr)

system.out.println("\n");

}}

資料結構(Java) 排序

排序的基本概念 2 排序演算法的效能評價 a 評價排序演算法好壞的標準 執行時間和所需的輔助空間 演算法本身的複雜程度 b 排序演算法的空間複雜度 若排序演算法所需的輔助空間並不依賴於問題的規模n,即輔助空間是o 1 則稱之為就地排序。非就地排序一般要求的輔助空間為o n c 排序演算法的時間開銷 ...

Java 資料結構 排序

思想 n 個元素需要排序 n 1 趟,每趟比較相鄰的兩個元素,如果前乙個元素和後乙個元素不滿足大小順序規則,則交換位置,這樣一趟下來,一趟中的最大 最小 的元素就 沉 到最後面的位置。執行 m 趟排序後,整個元素序列中的最後面的 m 個元素就排好順序了,剩下就只需要將前面的 n m 個元素排好序即可...

資料結構JAVA 氣泡排序

package com.function.demo 01 author of 2014年12月31日 資料結構 氣泡排序 演算法描述 公升序排列 從第乙個元素開始,對陣列中兩兩相鄰的元素比較,將值較小的元素放在前面,值較大的元素放在後面,一輪比較完畢,乙個最大的數沉底成為陣列中的最後乙個元素,一些較...