插入排序

来源:互联网 发布:网络春晚2017在线观看 编辑:程序博客网 时间:2024/06/08 03:01
/* * 插入排序,就是把未排序的数据插入到已排序的数据中去,主要涉及查找以及移动元素 */public class InsSort {public static void sort(int[] array){int temp;for(int i=1;i<array.length;i++){for(int j=i-1;j>=0;j--){if(array[j]>array[j+1]){temp = array[j+1];array[j+1] = array[j];array[j] = temp;}else{break;}}}}/* * i从1开始,外部循环,index从0开始,内部循环有两个重复,一个是外层取数据,一个是里面比较,故双重递归,(循环) */public static void sort2(int i,int[] a,int index,int temp){if(i>a.length)return;if(index<0)return;if(a[index]<a[index+1]){temp = a[index+1];a[index+1] = a[index];a[index] = temp;}sort2(i,a,index-1,temp);sort2(i+1,a,i-1,temp);}public static void printf(int[] a){for(int i=0;i<a.length;i++){System.out.println(a[i]);}}public static void main(String[] args) {int[] a = {23,12,5345,12,65634,2132,8,1,78,9};int[] b = {23,12,5345,12,65634,2132,8,1,78,9};sort(a);printf(a);System.out.println("---------------华丽分割线------------");int temp = 0;sort2(1,b,0,temp);printf(b);}}


原创粉丝点击