插入排序
基本思想:把待排序列表分為已排和未排序兩部分,從未排序左邊取值,按順序從已排序的右端開始對比插入到相應的位置。
java代碼實現
private void insertSort(int[] arr){int i, j;int temp;for(i = 0; i < arr.length; i++){temp = arr[i];j = i - 1;while(j > -1 && temp < arr[j]){arr[j + 1] = arr[j];j--;}arr[j + 1] = temp;}
}
穩定性分析:不會改變相同元素在存儲結構中的相對位置,是穩定的。
冒泡排序
冒泡排序是排序算法中的比較基礎的一個算法。
基本思想:每次從待選列表中選出一個最大的。
private void bubbleSort(int[] arr){int temp = 0;for(int j = 0; j < arr.length - i - 1; j++){if(arr[j] > arr[j + 1]){temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}