其它排序算法 http://liangge0218.iteye.com/blog/754720
public void shellSort(Comparable[] src) {
//初始步长,可以取原长一半,以后每次减半.这个比较简单,好记
int step = src.length / 2;
while (step >= 1) {
// 从step开始,关键(1)是i++,对每个步长间隔都排序
for (int i = step; i < src.length; i++) {
Comparable temp;
// 内部采用的是冒泡排序
for (int j = i; j >= step; j = j - step) {
if (src[j].compareTo(src[j - step]) < 0) {
temp = src[j];
src[j] = src[j - step];
src[j - step] = temp;
} else { // 关键(2)是else中的break; 利用了前面各个step的排序,不用交换的就break
break;
}
}
}
step = (step) / 2;
}
}
还有就是两个边界,int i = step和 j >= step
分享到:
相关推荐
数据结构课程排序算法中的经典shell排序
排序算法 排序算法_基于C语言实现的排序算法之ShellSort实现
基于python的排序算法-希尔排序Shell Sort
# sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() #计数排序 # sort.quickSort() #快速排序 该排序算法把...
本文实例讲述了PHP排序算法之希尔排序(Shell Sort)。分享给大家供大家参考,具体如下: 基本思想: 希尔排序是指记录按下标的一定增量分组,对每一组使用 直接插入排序 ,随着增量逐渐减少,每组包含的关键字越来越...
shellsort希尔排序算法增加最佳组合1
经典排序算法 - 希尔排序Shell sort 经典排序算法 - 堆排序Heap sort序 经典排序算法 - 地精排序Gnome Sort 经典排序算法 - 奇偶排序Odd-even sort 经典排序算法 - 梳排序Comb sort 经典排序算法 - 耐心排序...
使用MATLAB实现一个简单的希尔排序的例子
选择(SelectSort)、插入(InsertSort)、冒泡(BubbleSort)、Shell排序(ShellSort)、快速排序(QuickSort)、快速排序的改进算法(QStackSort)、合并排序算法(MergeSort)、 合并排序算法的改进算法(MergeSort2)、堆排序...
本文件包含shell排序的基本思路,代码实现,时间复杂度的分析。对数据结构与算法中shell排序算法的实现,附件以python实现。
shell排序的c语言算法 很好很强大很高效很教授的算法
在B站讲希尔排序的笔记,需要的同学可以免费下载
simotion中的一种算法。simotion是全球最新的运动控制系统
希尔排序(Shell Sort)是插入排序的一种,也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列(由相隔...
希尔排序(Shell Sort) 归并排序(Merge Sort) 快速排序(Quick Sort) 堆排序(Heap Sort) 计数排序(Counting Sort) 基数排序(Radix Sort) 桶排序(Bucket Sort) 深度优先搜索(Depth-First Search, DFS) ...
void ShellSort(T a[],size_t a_size,size_t dlta[],size_t dlta_size) { for(int i=0;i!=dlta_size;++i) ShellInsert(a,a_size,dlta[i]); } int main() { int inta[]={7,1,3,4,5,10,2,6,9,8}; ...
排序算法 - 快速排序(Insert Sort) - 希尔排序(Shell Sort) - 冒泡排序(Bubble Sort) - 快速排序(Quick Sort) - 选择排序(Selection Sort) - 堆排序(Heap Sort) - 归并排序(Merge Sort) - 箱排序(Bin Sort) - 基数...
void ShellSort(int* iArray,int length) { //初始化jump等于length int jump = length; //标记本趟检测是否进行了交换, // 若进行了 则还有下次从头开始的检测, // 否则停止,继续改变jump的值 做另一趟排序...
java十大排序算法实现 1. 冒泡排序(Bubble Sort) 2. 选择排序(Selection Sort) 3. 插入排序(Insertion Sort) 4. 快速排序(Quick Sort) 5. 归并排序(Merge Sort) 6. 堆排序(Heap Sort) 7. 计数排序...