(2)实例
(3)用java实现
1 package com.njue;
2
3 public class insertSort {
4 public insertSort(){
5 inta[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};
6 int temp=0;
7 for(int i=1;i<a.length;i++){
8 int j=i-1;
9 temp=a;
10 for(int j=0
;j>=0&&temp<a[j];j--){ 11 a[j+1]=a[j]; //将大于temp的值整体后移一个单位
12 }
13 a[j+1]=temp;
14 }
15 for(int i=0;i<a.length;i++)
16 System.out.println(a);
17 }
18 }
2,希尔排序(最小增量排序)
(1)基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。
(2)实例:
(3)用java实现
1 public class shellSort {
2 public shellSort(){
3 int a[]={1,54,6,3,78,34,12,45,56,100};
4 double d1=a.length;
5 int temp=0;
6 while(true){
7 d1= Math.ceil(d1/2);
8 int d=(int) d1;
9 for(int x=0;x<d;x++){
10 for(int i=x+d;i<a.length;i+=d){
11 int j=i-d;
12 temp=a;
13 for(;j>=0&&temp<a[j];j-=d){
14 a[j+d]=a[j];
15 }
16 a[j+d]=temp;
17 }
18 }
19 if(d==1)
20 break;
21 }
22 for(int i=0;i<a.length;i++)
23 System.out.println(a);
24 }
25 }
3.简单选择排序
(1)基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;
然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
(2)实例: