插入排序算法

来源:互联网 发布:sql语句教程视频 编辑:程序博客网 时间:2024/06/05 09:41

思想

  • 假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1..i-1]中,生成含n个记录的有序区。

稳定性

  • 选择排序是稳定排序算法

代码

/** * 插入排序 */public class InsertSort {    //元素    private Integer[] elements;    //索引    private Integer count;    public InsertSort(Integer max){        this.count = 0;        elements = new Integer[max];    }    //插入数据    public Integer insert(Integer element){        elements[count] = element;        count++;        return element;    }    //显示数据    public void display(){        for (int i = 0; i < count; i++){            System.out.println("array["+i+"]====="+this.elements[i]);        }    }    //排序    public void insertSort(){        int out,in;        for ( out= 1; out < count; out++ ){//外层循环            in = out;            int temp = elements[out];            while (in > 0 && elements[in-1] >= temp){                elements[in] = elements[in - 1];                --in;            }            elements[in] = temp;        }    }    //交换顺序    private void swap(int one,int two){        int temp = elements[one];        elements[one] = elements[two];        elements[two] = temp;    }    //测试    public static void main(String[] args) {        InsertSort insertSort = new InsertSort(5);        insertSort.insert(3);        insertSort.insert(6);        insertSort.insert(4);        insertSort.insert(90);        insertSort.insert(23);        insertSort.insertSort();        insertSort.display();    }}

结果

array[0]=====3array[1]=====4array[2]=====6array[3]=====23array[4]=====90
原创粉丝点击