插入排序
基本思想:把待排序列表分为已排和未排序两部分,从未排序左边取值,按顺序从已排序的右端开始对比插入到相应的位置。
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;}}}