每天一道编程题(六)-------希尔排序
来源:互联网 发布:js电机 编辑:程序博客网 时间:2024/05/16 15:54
希尔排序的主题思想其实就是分治,各个小模块之间执行插入排序,写起来也很简单,我以两种插入排序做了希尔排序,只是多了一个分治的for循环
public class ShellSort { public static void shellsort(int[] nums){ for(int increase=(nums.length/2);increase>0;increase/=2){ for(int i=increase;i<nums.length;i++){ int temp=nums[i]; for(int j=i;j>=increase;j-=increase){ if(nums[j]<nums[j-increase]){ nums[j]=nums[j-increase]; }else{ break; } nums[j-increase]=temp; } } } } public static void shellsort2(int[] nums){ for(int increase=(nums.length/2);increase>0;increase/=2){ for(int i=increase;i<nums.length;i++){ for(int j=i;j>=increase;j-=increase){ if(nums[j]<nums[j-increase]){ int temp=nums[j]; nums[j]=nums[j-increase]; nums[j-increase]=temp; } } } } }public static void main(String[] args) {int[] num={1,2,6,8,4,3};int[] nums={10,9,8,7,6,5,4,3,2,1}; shellsort2(num); for(int a:num){ System.out.println(a);}}}
- 每天一道编程题(六)-------希尔排序
- 由一道编程题学会希尔排序
- 每天一道编程题(三)------插入排序
- 每天一道编程题(四)--------冒泡排序
- 每天一道编程题(五)-------------选择排序
- 每天一道编程题(七)------------------快速排序
- 每天一道编程题(九)----------堆排序
- 每天一道编程题(1)
- 每天一道编程题(2)
- 每天一道编程题(3)
- 编程珠玑 第十一章 第 六题 选择排序和希尔排序
- 希尔排序(六)
- 每天一道编程题(八)--------百钱买百鸡
- C语言 每天做一道编程题
- 每天一种算法-希尔排序
- (模板题)sdut 3403 数据结构实验之排序六:希尔排序(希尔排序)
- 每天一道算法题——数组重排序
- 每天一道面试题(六)
- i will keep a blog myself!
- 粒子滤波总结(摘来总结)
- 在终端for循环
- VC中的UpdateData()函数参数true/false的区别
- Apache下url重写,虚拟机设置
- 每天一道编程题(六)-------希尔排序
- 字符串太长 以及cocos2d-x在多线程中绘制图像变白色块问题
- hdu 1009 肥胖鼠 贪心(一) sort 排序函数
- 那些事儿
- css样式重写,英文超出
- 统计文件行数的shell
- Sql server存储过程以及一次插入多条记录
- extern用法详解
- 关于 iconv UCS-2 中文乱码问题