排序(sorting )的功能是將乙個資料元素的任意序列,重新排列成乙個按關鍵字有序的序列。根據排序時待排序的資料元素數量的不同,使得排序過程中涉及的儲存器不同,可以將排序方法分為兩類。一類是整個排序過程在記憶體儲器中進行,稱為內部排序;另一類是由於待排序元素數量太大,以至於記憶體儲器無法容納全部資料,排序需要借助外部儲存裝置才能完成,這類排序稱為外部排序。
1.1 直接插入排序
直接插入排序是一種最簡單的插入排序方法,它的基本思想是:僅有乙個元素的序列總是有序的,因此,對 n 個記錄的序列,可從第二個元素開始直到第 n 個元素,逐個向有序序列中執行插入操作,從而得到n 個元素按關鍵字有序的序列。
一般來說,在含有j-1 個元素的有序序列中插入乙個元素的方法是:從第j-1 個元素開始依次向前搜尋應當插入的位置,並且在搜尋插入位置的同時可以後移元素,這樣當找到適當的插入位置時即可直接插入元素。
以關鍵字序列為例
**1:
public void straightinsertsort(double sorted)else
}sorted[insertpos]=sorted[0];
}}
}
**2:
public void insertsort(object r, int low, int high){
for (int i=low+1; i<=high; i++)
if (r[i]=low&&temp
常用排序演算法java實現
氣泡排序 平均時間複雜度o n n 最好o n 最壞o n n 空間複雜度o 1 public void bubblesort int a show a 插入排序 平均時間複雜度o n n 最好o n 最壞o n n 空間複雜度o 1 public void insertsort int a a j...
常用排序演算法的Java實現
b 八大內部排序 b img 1.直接插入排序 時間複雜度o n2 空間複雜度o 1 穩定的排序演算法 直接插入排序 param arr public static void insertsort int arr arr k gap temp 3.選擇排序 時間複雜度o n2 空間複雜度o 1 不穩...
常用排序演算法總結 選擇排序 java實現
選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...