插入排序(Insertion Sort),是一种简单直观并且稳定的排序算法。
从前到后取每个元素和之后的元素进行比较,将较小的元素前移,周而复始一直到最后一个元素,这样就将一组数从小到大进行排序。
另外也保证了两个相邻且相等的数顺序不会发生改变,保证了算法的稳定性。
java实现:
import java.util.Scanner;
import java.util.ArrayList;
public class CRsort {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
System.out.println("请输入10个数字:");
ArrayList<Integer> arr = new ArrayList<Integer>();
while (input.hasNext()) {
arr.add(input.nextInt());
if (arr.size() == 10) //控制输入数为10个
break;
}
Object[] arrays = arr.toArray(); //将ArrayList转换为数组类型
for (int i = 0; i < arrays.length; i++) {
for (int j = i + 1; j < arrays.length; j++) {
Integer num1 = (Integer) arrays[i]; //取其中一个元素和之后的元素进行比较
Integer num2 = (Integer) arrays[j];
if (num1 > num2) { //num1>num2,将两者进行交换
arrays[i] = num2;
arrays[j] = num1;
}
}
}
System.out.print("插入排序是:");
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i] + " ");
}
}
}
运行结果:
请输入10个数字:
8 6 4 1 3 4 2 5 7 9 0
插入排序是:1 2 3 4 4 5 6 7 8 9