- 浏览: 89135 次
- 性别:
- 来自: 天津
-
文章分类
- 全部博客 (110)
- java (110)
- Comparing PHP Frameworks ( Symfony (1)
- CakePHP (1)
- YII and CodeIgniter) (1)
- spring定时任务的实现 (1)
- 获得一个节点对象的节点类型 (1)
- SWT 文本框Text通过GC重绘改变边框颜色 (1)
- 常用命令收集(系统设置) (1)
- openlayers 应用Google图层你必须做的 (1)
- Shell Sort in Java (1)
- Java网络编程 (1)
- 删除more里面的Edit (1)
- Android颜色选择器 (1)
- Linux安全配置步骤简述 (1)
- 职场官话 (1)
- TOMCAT常用优化 (1)
- 2008 ==> 2009 (1)
- 01_Android介绍 (1)
- HTML特殊字符 (1)
- 终于完成一个最重要的任务——找工作 (1)
- java 加密算法 base64 (1)
- 《南方周末》《南方日报》《新京报》《南方体育》等报纸在线阅读 (1)
- 由ORM框架设计看到微软与苹果的最大差别 (1)
- 通过发微博控制电脑的程序源码 (1)
- flex入门 (1)
- JS合并单元格、JavaScript单元格合并 (1)
- 各种常用编译开关位置 (1)
- 单一入口应用程序概述 (1)
- [转]Cocoa中回调delegate的方法时判断delegate是否已经被释放 (1)
- java简单的通用ajax分页方法 (1)
- /dev/shm放/tmp (1)
- Java中HashMap排序和遍历 . (1)
- Chrome+SwitchySharp+myentunnel+SSH (1)
- LINUX-网卡Bond (1)
最新评论
-
ken890202:
java简单的通用ajax分页方法 -
hanmiao:
真够乱的,什么都看不清。
Linux安全配置步骤简述 -
houxinyou:
说一下我自己的想法.苹果只是做一款相同的东西,然后是完善.有什 ...
由ORM框架设计看到微软与苹果的最大差别 -
delphixp:
微软技术方案很多?。。。。Java 系统笑而不语。。。
由ORM框架设计看到微软与苹果的最大差别 -
huchiwei:
同意楼上说法。这代码....怎么看!!
web应用dao层的开发经验小结
<span style="background-color: #ffffff;"><span style="font-family: 'Times New Roman'; line-height: 18px;">基本思想:</span><br style=""><span style=""> ??? 先取一个小于n的整数d</span><sub style="">1</sub><span style="">作为第一个增量,把文件的全部记录分成d</span><sub style="">1</sub><span style="">个组。所有距离为d</span><sub style="">l</sub><span style="">的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d</span><sub style="">2</sub><span style=""><d</span><sub style="">1</sub><span style="">重复上述的分组和排序,直至所取的增量d</span><sub style="">t</sub><span style="">=1(d</span><sub style="">t</sub><span style=""><d</span><sub style="">t-l</sub><span style=""><…<d</span><sub style="">2</sub><span style=""><d</span><sub style="">1</sub><span style="">),即所有记录放在同一组中进行直接插入排序为止。?</span><span style="">该方法实质上是一种分组插入方法。</span></span>
import java.util.Random; /** * Shell sort in Java. * @author Sun Kui */ public class ShellSort { private long[] theArr; private int nElems; public ShellSort(int max) { theArr = new long[max]; nElems = 0; } public void insert(long value) { theArr[nElems++] = value; } public void display() { System.out.print("A="); for (int j = 0; j < nElems; j++) { System.out.print(theArr[j] + " "); if (j % 10 == 0) { System.out.println(); } } System.out.println(); } public void shellSort() { int inner, outer; long temp; // select increment in, start from 1 int h = 1; while(h <= nElems / 3) { h = h * 3 + 1; } while (h > 0) { for (outer = h; outer < nElems; outer++) { temp = theArr[outer]; inner = outer; while (inner > h - 1 && theArr[inner - h] >= temp) { theArr[inner] = theArr[inner - h]; inner -= h; } theArr[inner] = temp; } // decrease increment in each step h = (h - 1) / 3; } } public static void main(final String... args) { Random rand = new Random(); ShellSort ss = new ShellSort(100); for (int i = 0; i < 100; i++) { ss.insert(rand.nextInt(10000)); } ss.shellSort(); ss.display(); } }
?
end
发表评论
-
LINUX-网卡Bond
2012-02-08 15:22 925网卡bond是通过把多张网卡绑定为一个逻辑网卡,实现本 ... -
Chrome+SwitchySharp+myentunnel+SSH
2012-02-04 17:14 1900? <p style="margin ... -
Java中HashMap排序和遍历 .
2012-02-03 10:29 1969<div id="article_co ... -
/dev/shm放/tmp
2012-02-02 17:14 947呵呵,有时候不懂装懂的人挺搞笑的哈 转http://z ... -
java简单的通用ajax分页方法
2012-02-02 12:44 1827发表一个自己常用的分页的通用代码,实现了ajax分页。 ... -
[转]Cocoa中回调delegate的方法时判断delegate是否已经被释放
2012-01-31 16:58 1140<p>http://pingguohe.n ... -
单一入口应用程序概述
2012-01-11 14:03 699什么是单一入口应用程序? 在解释什么是单一入口应用 ... -
各种常用编译开关位置
2012-01-11 12:54 743vendor\third-party\products ... -
JS合并单元格、JavaScript单元格合并
2011-12-28 14:08 1132<span style="font-f ... -
flex入门
2011-12-28 12:23 898<span style="fon ... -
通过发微博控制电脑的程序源码
2011-12-20 12:29 1332前段时间看群里挺多讨论 微博api,正好前几天看到有个 ... -
由ORM框架设计看到微软与苹果的最大差别
2011-12-20 09:59 1388一不小心加入水 ... -
《南方周末》《南方日报》《新京报》《南方体育》等报纸在线阅读
2011-12-15 11:04 1266我经常到南方报业提供的网址下载他们出版的报纸看,今天突 ... -
java 加密算法 base64
2011-12-14 17:58 931<span style="color: ... -
终于完成一个最重要的任务——找工作
2011-12-14 14:54 667</span></span>& ... -
HTML特殊字符
2011-12-14 10:54 750最近在做某种模拟器上的网页的显示,需要考虑HTML特殊 ... -
01_Android介绍
2011-12-13 10:44 614? <h4 style="margin ... -
2008 ==> 2009
2011-12-13 10:39 653发现时间过的真的很快,这么快,又是新的一年了。特地翻出 ... -
TOMCAT常用优化
2011-12-12 16:04 680<p class="MsoNorm ... -
职场官话
2011-12-12 12:29 581官场充斥着官话,职场也满是官话,可能你没有注意到而已。 ...
相关推荐
The emphasis is not on teaching advanced concepts of the Java language, per se, ...trees, advanced sorting methods (heapsort, quicksort, mergesort, Shell sort), and hashing (a very fast way to search).
在这段代码中,`ShellSort`类实现了`SortUtil.Sort`接口,并重写了其中的`sort`方法。该方法通过递减的增量序列进行分组排序,每组内部使用插入排序。这种方法能够有效地减少数据的移动次数,提高排序效率。 以上...
public class ShellSort implements SortUtil.Sort{ public void sort(int[] data) { for(int i=data.length/2;i>2;i/=2){ for(int j=0;j;j++){ insertSort(data,j,i); } } insertSort(data,0,1); } ...
希尔排序(Shell Sort)是插入排序的一种更高效的改进版本,也称为缩小增量排序,它首先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次...
public class ShellSort implements SortUtil.Sort { public void sort(int[] data) { for (int i = data.length / 2; i > 2; i /= 2) { for (int j = 0; j ; j++) { insertSort(data, j, i); } } insertSort...
public class ShellSort implements SortUtil.Sort { public void sort(int[] data) { for (int i = data.length / 2; i > 2; i /= 2) { for (int j = 0; j ; j++) { insertSort(data, j, i); } } insertSort...
public class ShellSort implements SortUtil.Sort { public void sort(int[] data) { for (int i = data.length / 2; i > 2; i /= 2) { for (int j = 0; j ; j++) { insertSort(data, j, i); } } insertSort...
希尔排序类(ShellSort)实现SortUtil接口。它的sort方法使用了增量序列来分组排序,并在最后调用insertSort方法进行最终的插入排序以达到完全排序的效果。 这些排序算法在Java中的实现为学习和理解各种排序算法的...
public class ShellSort { public static void sort(int[] array) { int gap = array.length / 2; while (gap > 0) { for (int i = gap; i ; i++) { int temp = array[i]; int j; for (j = i; j >= gap && ...
public class ShellSort implements SortUtil.Sort{ public void sort(int[] data) { for(int i = data.length / 2; i > 2; i /= 2) { for(int j = 0; j ; j++) { insertSort(data, j, i); } } insertSort...
public class ShellSort implements SortUtil.Sort { public void sort(int[] data) { for (int i = data.length / 2; i > 2; i /= 2) { for (int j = 0; j ; j++) { insertSort(data, j, i); } } insertSort...
public class ShellSort implements SortUtil.Sort { public void sort(int[] data) { for(int i=data.length/2; i>2; i/=2){ for(int j=0; j; j++){ insertSort(data, j, i); } } insertSort(data, 0, 1); ...
根据提供的文件信息,我们可以总结出该文档主要涉及了五种基于Java实现的排序算法:插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)、希尔排序(Shell Sort)以及快速排序(Quick ...
public static void shellSort(int[] data) { int n = data.length; int gap = n / 2; while (gap > 0) { for (int i = gap; i ; i++) { int temp = data[i]; int j = i; while (j >= gap && data[j - gap] >...
public class ShellSort implements SortUtil.Sort { public void sort(int[] data) { for (int i = data.length / 2; i > 2; i /= 2) { for (int j = 0; j ; j++) { insertSort(data, j, i); } } insertSort...
3. **希尔排序(Shell Sort)**: 希尔排序是对插入排序的改进,通过设定一个间隔序列,将待排序的元素分组,对每组使用插入排序,逐步减小间隔直到为1,最终完成排序。希尔排序的时间复杂度在最坏情况下为O(n^1.5),...
public class ShellSort implements SortUtil.Sort { public void sort(int[] data) { for (int i = data.length / 2; i > 2; i /= 2) { for (int j = 0; j ; j++) { insertSort(data, j, i); } } insertSort...
public void shellSort(int[] data) { int inner, outter, temp; int h = 1; while (h ) { h = h * 3 + 1; } while (h > 0) { for (outter = h; outter ; outter++) { temp = data[outter]; inner = outter...
Java标准库中也包含有排序方法,例如Arrays类中的sort方法可以对数组进行排序,Collections类中的sort方法可以对集合进行排序。这些库函数背后实际上就是使用了这些基本排序算法的高效实现,或者是它们的变体和优化...