插入排序

来源:互联网 发布:手机淘宝下载不了 编辑:程序博客网 时间:2024/06/05 21:49
import java.util.ArrayList;import java.util.Random;/* * 插入排序,使用ArrayList */public class InsertionSort {ArrayList<Integer> list;public InsertionSort(int num, int mod) {// num是待排序排序数字个数,产生的随机数在1到mod之间list = new ArrayList<Integer>(num);System.out.println("排序之前的数组:");for (int i = 0; i < num; i++) {list.add(new Random().nextInt(mod));System.out.println("list[" + i + "]=" + list.get(i));}}public void sort() {//排序Integer tempInt;int MaxSize = 1;for (int i = 1; i < list.size(); i++) {tempInt = (Integer) list.remove(i);if (tempInt.intValue() >= ((Integer) list.get(MaxSize - 1)).intValue()) {list.add(MaxSize, tempInt);MaxSize++;} else {for (int j = 0; j < MaxSize; j++) {if (((Integer) list.get(j)).intValue() >= tempInt.intValue()) {list.add(j, tempInt);MaxSize++;break;}}}}System.out.println("排序之后的数组:");for (int i = 0; i < list.size(); i++) {System.out.println("list[" + i + "]=" + list.get(i));}}public static void main(String[] args) {InsertionSort is = new InsertionSort(10, 100);is.sort();}}

运行结果:

排序之前的数组:
list[0]=26
list[1]=63
list[2]=82
list[3]=41
list[4]=12
list[5]=76
list[6]=92
list[7]=75
list[8]=94
list[9]=74
排序之后的数组:
list[0]=12
list[1]=26
list[2]=41
list[3]=63
list[4]=74
list[5]=75
list[6]=76
list[7]=82
list[8]=92
list[9]=94