java排序算法之希尔排序(100%原创,哈哈)
来源:互联网 发布:现在用网络怎么赚钱 编辑:程序博客网 时间:2024/05/22 12:07
1、设置间隔并循环
2、每个间隔内进行插入排序
注意:最外层循环为间隔的个数,第二层循环为每个间隔内插入排序的次数,第三层循环为每个间隔内的每一种情况下的插入排序,例如第一层为gap=5、2、1的循环
第二层为89、81和12、27和65、2和97、61和61、98 的循环,第三层为89和81的内部插入排序
package com.sor;import java.util.Random;public class TestShellSort {//[18, 87, 42, 72, 52, 18, 39, 61, 37, 0] public static int[] shellSort(int[] r){ int gap=r.length/2; //间隔循环次数 while (gap>0) { //每一次间隔循环次数 for (int i = 0; i < gap; i++) { //每个间隔的每次比较进行插入排序,第一次写的时候没有写i,循环里面嵌套的逻辑一般与循环变量有关系,切记 for (int j =i+gap; j <r.length; j+=gap) { //保存待插入值 int key=r[j]; //保存索引值,用以标记待插入位置 int index=j; while (index-gap>=0&&r[index-gap]>key) {r[j]=r[index-gap];index-=gap;} r[index]=key;}} gap/=2; } return r; }public static void display(int[] R){ System.out.println(); for(int i=0;i<R.length;i++){ System.out.print(R[i]+" "); } } public static void main(String[] args) { final int M = 10;//定义数组大小为50 int []R = new int[M]; for(int i=0;i<M;i++){ R[i] = new Random().nextInt(100);//生成100以内的随机数 } display(R); R = shellSort(R); display(R); }}
- java排序算法之希尔排序(100%原创,哈哈)
- 算法学习之希尔排序(java)
- java算法之希尔排序
- Java算法之希尔排序
- 排序算法之希尔排序(JAVA)
- Java算法排序之--希尔排序法
- java排序算法之希尔排序
- 排序算法之希尔排序Java版
- 排序算法之希尔排序(Java)
- Java常用排序算法之希尔排序
- java排序算法之希尔排序
- 排序算法之希尔排序(Java)
- Java排序算法之希尔排序
- 排序算法之希尔排序 java实现
- Java排序算法之希尔排序
- Java八大排序算法之希尔排序
- 排序算法之希尔排序--Java语言
- java算法之四希尔排序(插入排序)
- 用hash cluster表提高查询性能
- 教父,人心自知
- Microsoft Visual C++ 6.0 (SP6) 中can not open include file "afxres.h"问题的解决方案
- vista/win7系统 红警/CS/星际争霸 局域网连接方法
- Program received signal: "SIGABRT"
- java排序算法之希尔排序(100%原创,哈哈)
- iOS应用检查更新的最优方法
- Oracle基本步骤前滚和回滚
- 第九周实验报告3(定义分数类中<<和>>运算符重载)
- OK6410之u_boot.bin等问题解决
- Python是什么?
- Android电源管理
- chicago-data-summit-apache-hbase-an-introduction
- AIR A file found in a source-path can not have more than one externally visiable