AJPFX分享java排序之希尔排序
(1)基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。
(2)用java实现
public class shellSort {
public shellSort(){
int a[]={1,54,6,3,78,34,12,45,56,100};
double d1=a.length;
int temp=0;
while(true){
d1= Math.ceil(d1/2);
int d=(int) d1;
for(int x=0;x<d;x++){
for(int i=x+d;i<a.length;i+=d){
int j=i-d;
temp=a;
for(;j>=0&&temp<a[j];j-=d){
a[j+d]=a[j];
}
a[j+d]=temp;
}
}
if(d==1)
break;
}
for(int i=0;i<a.length;i++)
System.out.println(a);
}
}
最新文章
- RobotFrameWork(六)控制流之For循环
- 自己动手写ORM框架
- 用 pytube 爬取 youtube 视频
- CSS声明顺序
- DTD约束的校验工具安装及检验(Iexmltls工具)
- C#强制清除缓存
- WCF学习心得------(六)数据协定
- SharePoint 2010 ";客户端不支持使用windows资源管理器打开此列表"; 解决方法
- 在Visual Studio 2010 中创建类库(dll)
- $.post()
- Installshield停止操作系统进程的代码 --IS6及以上版本适用
- java编程基础复习-------第二章
- 插入排序(Java实现)
- pg_dump命令帮助信息
- 前端/C# 前后台交互文件上传、下载
- SpringBoot系列十:SpringBoot整合Redis
- Django Admin初识
- IntelliJ IDEA 项目结构旁边出现 0%classes,0% lines covered
- JavaScript(ECMAScript) with 语句
- 【liunx】linux后台执行命令:&;和nohup