java-插入排序

来源:互联网 发布:helloworld代码java 编辑:程序博客网 时间:2024/06/05 10:45

1.插入排序主算法

package array;public class InsertSort {private long[] a;private int nElemts;// ----------constructor----------------public InsertSort(int max) {a = new long[max];nElemts = 0;}// ---------------size------------public int size() { // the numbers of arrayreturn nElemts;}// ---------------insertSort------------------public void insertionSort() {int first;// 指向无序部分的第一个元素for (first = 1; first < nElemts; first++) {int position = first-1;// position局部有序部分第一个不大于temp的元素long temp = a[first];while (position >= 0 && a[position] > temp) {a[position+1] = a[position];// 将比a[first]大的元素先后移动一位position--;}a[position+1] = temp;// 将元素插入到position位置}}// end find// ------------------delete------------public void insert(long value) {a[nElemts] = value;nElemts++;}// end insert// ---------------display array elements----------------public void display() {for (int k = 0; k < nElemts; k++) {// for each elementSystem.out.print(a[k] + "-");// display it}System.out.println();}}



 

2.测试程序

package array;public class InsertSortApp {/** * @param args */public static void main(String[] args) {InsertSort insertSort = new InsertSort(10);insertSort.insert(56);insertSort.insert(20);insertSort.insert(66);insertSort.insert(1);System.out.println("排序前:");insertSort.display();insertSort.insertionSort();System.out.println("排序后:");insertSort.display();}}


 

3.测试结果

排序前:56-20-66-1-排序后:1-20-56-66-