目录:
https://blog.csdn.net/stoneWang_L/article/details/89228145
1)冒泡排序
https://blog.csdn.net/stoneWang_L/article/details/89220461
3)选择排序
https://blog.csdn.net/stoneWang_L/article/details/89220638
4)快速排序
https://blog.csdn.net/stoneWang_L/article/details/89221592
5)堆排序
https://blog.csdn.net/stoneWang_L/article/details/89190250
6)归并排序
https://blog.csdn.net/stoneWang_L/article/details/89210938
7)希尔排序
https://blog.csdn.net/stoneWang_L/article/details/89217137
插入排序
思路:把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只有一个元素,无序表中有n-1个元素;排序过程即每次从无序表中取出第一个元素,将它插入到有序表中,使之成为新的有序表,重复n-1次完成整个排序过程。
code:
1、InsertSort.java
package DataStr;
import java.util.Arrays;
public class InsertSort {
public static void main(String[] args) {
int[] arr = SortTestHelper.getRandomArray(15, 0, 10);
System.out.println("插入排序前:"+Arrays.toString(arr));
insertSort(arr);
System.out.println("插入排序后:"+Arrays.toString(arr));
}
private static void insertSort(int[] arr) {
//为什么i是从1开始呢,因为第0个元素只有一个,本来就有序
for(int i=1; i<arr.length; i++) {
//寻找arr[i]合适的插入位置;j保存元素temp应该插入的位置
int temp = arr[i], j;
for(j=i; j>0 && arr[j-1]>temp; j--)
arr[j] = arr[j-1];
arr[j] = temp;
}
}
}
2、测试数组辅助类
SortTestHelper.java
package DataStr;
public class SortTestHelper {
/**
*
* @param n 生成n个元素的随机数组
* @param rangeL 随机范围[rangeL
* @param rangeR rangeR]
* @return 返回一个随机 int 型数组
*/
public static int[] getRandomArray(int n, int rangeL, int rangeR) {
int[] arr = new int[n];
for(int i=0; i<n; i++) {
arr[i] = (int)(Math.random() * (rangeR - rangeL +1)) + rangeL;
}
return arr;
}
}
结果: