package sort;import java.util.Scanner;public class ShellSort { public static int arr[]; static{ System.out.println("Please enter the arra...
分类:
编程语言 时间:
2015-08-02 11:35:09
阅读次数:
127
各位看官们,大家好,上一回中咱们说的是插入排序的例子,这一回咱们说的例子是:希尔排序。闲话休
提,言归正转。让我们一起talk C栗子吧!
希尔排序是对插入排序的一种改进,希尔排序的原理:先将容器分成若干子容器,然后分别对子容器进行
插入排序,当子容器全部排序完毕后,对全部元素进行一次插入排序。
希尔排序的实现步骤:
1.选取一个增量,增量的大小可以自己定义,其...
分类:
编程语言 时间:
2015-08-02 10:21:22
阅读次数:
123
以某个记录(元素)为界(该记录称为支点或枢轴),将待排序列分成两部分:
①一部分: 所有记录的关键字大于等于支点记录的关键字
②另一部分: 所有记录的关键字小于支点记录的关键字
算法描述:
1、任取待排序记录序列中的某个记录(例如取第一个记录)作为基准(枢),按照该记录的关键字大小,将整个记录序列划分为左右两个子序列
2、左侧子序列中所有记录的关键字都小于或等于基准记录的关键字
...
分类:
编程语言 时间:
2015-08-01 19:02:03
阅读次数:
119
希尔排序又称缩小增量排序
1、先取定一个小于n的整数gap1作为第一个增量,把整个序列分成gap1组。所有距离为gap1的倍数的元素放在同一组中,在各组内分别进行排序(分组内采用直接插入排序或其它基本方式的排序)。(一般gap1为n/2,一次往后类推:gap2=gap/2,若为奇数,则gap2=(gap1+1)/2 gap1=(n+1)/2)
2、然后取第二个增量gap2
3、依此类推...
分类:
编程语言 时间:
2015-08-01 17:21:25
阅读次数:
202
1.在平时的学习中,很经常听到各种排序算法,各自有其优缺点。尝试自己用C++实现各排序算法,作为对算法的基础学习。 常见的内部排序:插入排序冒泡排序选择排序快速排序堆排序归并排序基数排序希尔排序
分类:
编程语言 时间:
2015-08-01 11:15:30
阅读次数:
141
首先是算法实现文件Sort.h,代码如下:
/*
* 实现了八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序
* 以及快速排序、归并排序、堆排序和LST基数排序
* @author gkh178
*/
#include
template
void swap_value(T &a, T &b)
{
T temp = a;
a = b;
b = temp;
}
//插入排序:时...
分类:
编程语言 时间:
2015-07-31 01:20:34
阅读次数:
116
首先是EightAlgorithms.java文件,代码如下:
import java.util.Arrays;
/*
* 实现了八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序
* 以及快速排序、归并排序、堆排序和LST基数排序
* @author gkh178
*/
public class EightAlgorithms {
//插入排序:时间复杂度o(n^2)...
分类:
编程语言 时间:
2015-07-30 21:29:55
阅读次数:
122
希尔伯特矩阵希尔伯特矩阵是一种数学变换矩阵Hilbert matrix,矩阵的一种,其元素A(i,j)=1/(i+j-1),i,j分别为其行标和列标。即:[1,1/2,1/3,……,1/n]|1/2,1/3,1/4,……,1/(n+1)||1/3,1/4,1/5,……,1/(n+2)|……[1/n,...
分类:
其他好文 时间:
2015-07-30 16:37:25
阅读次数:
158
希尔排序:定义一个间隔序列,例如是5,3,1。第一次处理,会处理所有间隔为5的,下一次会处理间隔为3的,最后一次处理间隔为1的元素。也就是相邻元素执行标准插入排序。在开始最后一次处理时,大部分元素都将在正确的位置,算法就不必对很多元素进行交换,这是比插入元素高级的地方。时间复杂度O(n*logn) ...
分类:
编程语言 时间:
2015-07-27 20:27:47
阅读次数:
167