希尔排序

来源:互联网 发布:sql exists是什么意思 编辑:程序博客网 时间:2024/06/15 23:54

这里写图片描述

package sort;import java.util.ArrayList;/* * 希尔排序 *  * 希尔排序其实就是在插入排序基础上,加上一个步长计算 */public class shellSort{    int gap ;//步长    int [] array = { 9 , 4 , 1 , 3 , 5 , 6 , 8 } ;    public void sort ()    {        //增量序列        for ( gap = array.length/2 ; gap >= 1 ; gap = gap/2 )        {            //插入排序  第一次以步长所对应的数据为起点            for ( int i = gap ; i < array.length ; i ++ )            {                //与插入不同的是,插入是起点与起点前面数据一一比较(--) 希尔是以固定步长的数据比较,起点下标越往后比较的越多                for ( int j = i - gap  ; j >= 0  && array [j] > array [j+gap] ; j -= gap )                {                    int temp = array [j] ;                    array [j] = array [j+gap] ;                    array [j+gap] = temp ;                }            }        }    }    public void display ()    {        for ( int i = 0 ; i < array.length ; ++ i )        {            System.out.print ( array [i] + " " );        }        System.out.println (  );    }}
原创粉丝点击