表現最穩定的排序演算法之一,因為無論什麼資料進去都是o(n2)的時間複雜度,所以用到它的時候,資料規模越小越好。唯一的好處可能就是不占用額外的記憶體空間了吧。理論上講,選擇排序可能也是平時排序一般人想到的最多的排序方法了吧。
選擇排序(selection-sort)的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
(1) 演算法描述
n個記錄的直接選擇排序可經過n-1趟直接選擇排序得到有序結果。具體演算法描述如下:
(2) **
/**
* 選擇排序
*/public static int selectionsort(int array)
int temp = array[minindex];
array[minindex] = array[i];
array[i] = temp;
}return array;
}
最佳情況:t(n) = o(n2) 最差情況:t(n) = o(n2) 平均情況:t(n) = o(n2)
插入排序(insertion-sort)的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,通常採用in-place排序(即只需用到o(1)的額外空間的排序),因而在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。
(1) 演算法描述
一般來說,插入排序都採用in-place在陣列上實現。具體演算法描述如下:
(2)**
/**
* 插入排序
*/public static int insertionsort(int array)
array[preindex + 1] = current;
}return array;
}
最佳情況:t(n) = o(n) 最壞情況:t(n) = o(n2) 平均情況:t(n) = o(n2) java選擇排序 氣泡排序和插入排序實現
排序是將一組 無序 的記錄序列調整為 有序 的序列的操作。最簡單的排序演算法有選擇排序 氣泡排序和插入排序。public class popsort system.out.println 選擇法排序 public static void selectsort int a for int i 0 i ...
選擇和插入排序 java
選擇排序 selection sort 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。演算...
Java排序 氣泡排序 插入排序和選擇排序
插入排序 1 特殊 從第二個元素開始,和第乙個元素比較,如果滿足排序的順序,則交換順序。2 一般 把待比較和他之前的所有元素相比 從右往左 如果滿足排序的順序,這交換。private static void insertsort int arr 2 氣泡排序 1 從第乙個元素開始,和第二個元素相比,...