java中排序算法的实现(三)
来源:互联网 发布:哈根纽翠斯 知乎 编辑:程序博客网 时间:2024/05/21 10:57
转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/17754983
今天继续接上次的排序算法。今天就写希尔排序在java中的一种实现方式。
/** * @param list * @param c * @Date: 2014-1-2 * @Author: lulei * @Description: 希尔排序 */public static <T> void shellSort(List<T> list, Comparator<? super T> c) {if (list == null){return;}//初始步长设置为数组长度的一半int d = list.size() / 2;while (d >= 1) {shellSort(list, c, d);d /= 2;}}/** * @param list * @param c * @param d 步长 * @Date: 2014-1-2 * @Author: lulei * @Description: 希尔排序中的每个分组采用直接插入排序实现 */public static <T> void shellSort(List<T> list, Comparator<? super T> c, int d) {if (list == null){return;}//插入排序实现排序for (int i = d; i < list.size(); i++) {T temp = list.get(i);int j;//将为排序的元素和已排序的序列进行比较,并移动元素位置for (j = i - d; (j >= 0) && (c.compare(list.get(j), temp) > 0); j -= d) {list.set(j + d, list.get(j));}//如果标记元素不是已排序中最大的,将标记元素插入到有序序列中if (j != (i - d)) {list.set(j + d, temp);}}}
最近看了一下所有排序算法的思想,以及他们的时间复杂度和空间复杂度。说一点自己的理解,对于任何一种排序算法,都不会在所有情况下达到最优,每种算法都有其最优的使用情况。
0 0
- java中排序算法的实现(三)
- java三种排序算法的实现
- 三种简单的排序算法(java实现)
- Java实现排序算法(三)
- 排序算法JAVA实现三
- [算法之排序]三向切分的快速排序算法(java实现)
- 排序算法(三)_计数排序、基数排序的Java实现
- [排序算法]--冒泡排序的三种实现(Java)
- [排序算法]--直接插入排序的三种实现(Java)
- 必须知道的八大种排序算法【java实现】(三) 归并排序算法、堆排序算法详解
- 排序算法(三):JAVA实现直接插入排序
- 排序算法【java实现】(三)快速排序
- JAVA实现排序算法(三):希尔排序
- Java中实现的各种排序算法
- JAVA中快速排序算法的实现
- Java排序算法(三)--归并排序(MergeSort)递归与非递归的实现
- java中排序算法的实现(一)
- java中排序算法的实现(二)
- 基于Visual C++6.0的声音文件操作
- 地球 달 사람의 變化 (韓長庚 易學原理總論)
- centos安装和配置hadoop2.2.0
- IOCPNet - Ultimate IOCP
- 解决java.lang.UnsupportedClassVersionError: Bad version number in .class file问题
- java中排序算法的实现(三)
- 对于应用终止的控制。用配置文件,实时读取某个信息,控制应用在恰当的时机停止
- 修改系统TCP并发数
- 我们能从Java的HelloWorld中学到什么?
- 适时创新与实时问题
- ECSHOP调用分类文章,ECSHOP调用公告的方法
- cocos2d-x-2.2.0_win7+vs2010搭建_eclipse+ndk-r9+cygwin搭建_教程以及编译问题汇总
- Java程序读写Microsoft Office时POI的类型
- CStringT类和CString类的关系