基于java的算法之插入排序(附麻瓜运行方法)
插入排序
输入:n个数的一个序列<a1,a2......an>
输出:输入序列的一个排列<a1',a2'......an'> ,满足a1'<a2'<......<an'
思路
插入排序是原地排序(也就是说数组内的元素变化都是在一个数组里),给定一个数组,初始化两个下标,分别指向插入元素的前一个元素(下面都称作比较元素)和插入元素,然后把插入元素赋值给临时变量temp(防止元素移动时候把插入元素给覆盖掉),接着就是把比较元素和插入元素(此处的插入元素的值就是临时变量)比较,比较元素大于插入元素则将比较元素后移,原比较元素的下标减1,现比较元素继续和插入元素比较,一直到比较元素大于插入元素或者比较元素的小标减少到0时为止,然后把临时变量(也就是插入元素赋给比较元素的下一个位置),依次推类,直到排序完毕。
参考过程理解(图片来源于百度百科)
实例代码
package alg;
public class run_sort {
public static void Insertion_sort(int array[]) {
int i, j = 0;
int n;
n = array.length;
for (i = 0; i < n - 1; i++) {
int temp = array[i + 1];
j = i;
while (array[j] > temp && j >= 0) {
array[j + 1] = array[j];
j--;
if (j < 0)
break;
}
array[j + 1] = temp;
}
}
public static void main(String[] args) {
int ins[] = { 1, 9, 10, 2, 5, 9, 6, 8, 3, 2, 4 };
System.out.println("loading");
Insertion_sort(ins);
int i = 0;
while (i < ins.length) {
System.out.format(" %d ", ins[i]);
i++;
}
}
}
运行方法(新手用的麻瓜方法)
1.打开eclipse
2.点击文件新建java项目,取名alg
3.在包资源管理器中右键点击src,新建类,取名run_sort
4.代码复制过去点击ctrl+F11,可以看到结果了