package insert_sort;
import java.util.Random;
/*各类插入排序
* ------数据存储范围1~s.length-1-------
*主要包括
*直接插入排序
*折半插入排序
*希尔排序
*以下为代码实现,其中折半查找函数是为了供折半插入排序使用
*/
public class Sort {
/*
* 折半查...
分类:
编程语言 时间:
2015-07-27 01:57:28
阅读次数:
224
希尔排序
package ShellSort;import Utils.SortUtils;public class Demo { public static void shellSort(int[] a){ int temp,j;
int increment = a.length; do{
increment = incr...
分类:
编程语言 时间:
2015-07-26 22:44:00
阅读次数:
360
希尔排序思想:使数组中任意间隔为h的元素都是有序的。...
分类:
编程语言 时间:
2015-07-23 17:45:32
阅读次数:
133
效率:O(n*logN)
package sort;
import utils.Util;
/**
* 希尔排序
* 以h为间隔,进行比较。 按一定公式,先求出最大的间隔h
* 当h值大时,需要移动的元素个数就少,但移动的距离长。 内部以h步长的元素做插入排序
* 当h减小时,每趟排序需要移动的元素个数增多,但此时已接近于它们排序后的最终位置,这对于插入排序更有效率
...
分类:
编程语言 时间:
2015-07-23 12:11:14
阅读次数:
111
C/C++中的经典排序算法总结
在C/C++中,有一些经典的排序算法,例如:冒泡排序、鸡尾酒排序或双向冒泡排序(改进的冒泡排序)、选择排序、直接插入排序、归并排序、快速排序、希尔排序和堆排序等等。下面对这些排序算法进行一一解析并给出示例代码以共享之。
1、冒泡排序
冒泡排序是最基本的排序算法,之所以称之为冒泡排序是因为在冒泡排序的过程中总是大数往前放,小数往后放,相当...
分类:
编程语言 时间:
2015-07-23 12:09:13
阅读次数:
161
针对现实中的排序问题,算法有七把利剑可以助你马道成功。
首先排序分为四种:
交换排序: 包括冒泡排序,快速排序。
选择排序: 包括直接选择排序,堆排序。
插入排序: 包括直接插入排序,希尔排序。
合并排序: 合并排序。
冒泡排序简单来说就是利用两个for循环来进行排序,由前一个数据和后一个数据比较,如果前一个大于后一个则交...
分类:
编程语言 时间:
2015-07-23 10:43:10
阅读次数:
112
希尔排序法的基本思想是:先选定第一个整数,把待排序文件中所有记录分成个组。如下图,第一个整数分为有序组,其余为无序组。
每次处理就是将无序组中的第一个数,与有序组的元素从后往前一次比较,找到合适位置插入,即完成一次处理;这样一直重复下去,直到无序组中没有元素为止。如下图,已清除描述。
排序的目的就是为了使无序数列变为有序数列。希尔排序法,一开...
分类:
编程语言 时间:
2015-07-22 18:57:52
阅读次数:
180
/// /// 希尔排序 /// public class ShellSort { public static void Sort(int[] array) { //取增量 int step = ar...
分类:
编程语言 时间:
2015-07-21 23:30:16
阅读次数:
147
内部排序算法总结:排序算法有各自的时间复杂度,并不代表时间复杂度高的算法在任何情况下就比时间复杂度低的算法要低效,相反也一样。排序算法按照其最基本的操作可以分为以下几种类型:插入类排序算法直接插入排序算法折半插入排序算法希尔排序算法选择类排序算法简单选择排序算法堆排序交换类排序算法冒泡排序快速排序1...
分类:
编程语言 时间:
2015-07-20 23:08:18
阅读次数:
147
本博文主要是我以前写过的一些算法程序,里面主要从简单的插入排序到希尔排序说明。#include#includevoid shellSort(int *arr,int len); //在插入排序基础上进行修达到希尔排序void shellSortReal(int *arr,int len); //简化...
分类:
编程语言 时间:
2015-07-18 18:19:26
阅读次数:
112