希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一...
分类:
编程语言 时间:
2014-09-15 17:18:09
阅读次数:
235
今天大鹏哥跟大家一起学习下插入排序中的直接插入排序。
直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。
算法描述:
Step1、将待排序的一组记录中的第1个记录拿出来作为一组有序的记录(当然此时该组记录仅有1个记录)。
Step2、依次将待排序的一...
分类:
其他好文 时间:
2014-09-15 15:57:39
阅读次数:
170
protected void SelectSort(int[] array) { int tmp;//暂存要交换的数据 int t;//交换数据的位置 for (int i = 0; i ...
分类:
其他好文 时间:
2014-09-12 14:47:23
阅读次数:
140
直接插入排序基本思想:有一列数,把待排数字插入到前面已排好的数字序列中。比如 n个数做直接插入排序 56,14,45,69,42,8,10开始时有序表中只包含一个元素,无序组中有n-1个元素有序表无序表5614,45,69,42,8,10从无...
分类:
编程语言 时间:
2014-09-12 11:45:23
阅读次数:
197
8种排序之间的关系:1,直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)实例(3)用java实现 1 package com.njue; 2....
分类:
编程语言 时间:
2014-09-10 09:30:50
阅读次数:
318
希尔排序(Shell Sort)是插入排序的一种,其实质就是分组插入排序,该方法又称缩小增量排序,因D.L.Shell于1959年提出而得名。它是对直接插入排序的一种改进,通过加大插入排序中元素之间的间隔,并在这些有间隔的元素中进行插入排序,从而使得数据项大跨度的移动。 基本思想 先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后...
分类:
其他好文 时间:
2014-09-07 17:21:38
阅读次数:
172
引言:
插入排序作为最简单易于理解的排序算法,基本实现比较简单。本文详细介绍直接插入排序,并给出实现,简单的介绍折半插入排序,并给出2-路插入排序和表插入排序两种插入排序,但并未给出具体实现。
一、直接插入排序
直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。
...
分类:
其他好文 时间:
2014-09-07 06:35:24
阅读次数:
256
希尔排序又称“缩小增量排序”,它的基本思想是:先将整个待排记录序列分割成若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对记录进行一次直接插入排序。
希尔排序的一个特点是:子序列的构成不是简单地“逐段分割”,而是将相隔某个“增量”的记录组成一个子序列。这就使得希尔排序中关键字较小的记录不是一步一步地往前挪动,而是一次按照“增量”的大小跳跃式地往前移,从而使...
分类:
其他好文 时间:
2014-09-07 01:08:34
阅读次数:
212
引言:
插入排序作为最简单易于理解的排序算法,基本实现比较简单。本文详细介绍直接插入排序,并给出实现,简单的介绍折半插入排序,并给出2-路插入排序和表插入排序两种插入排序,但并未给出具体实现。
一、直接插入排序
直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。
算法描述:
步骤1、将待排序的一组记录中的第...
分类:
其他好文 时间:
2014-09-06 22:34:07
阅读次数:
257
1 #include 2 3 //直接插入排序算法 4 void InsertSort(int a[], int size) 5 { 6 int i, j; 7 int key; //待插入的值 8 for (j = 1; j = 0 && a[i]>key) 13 { 14 ...
分类:
其他好文 时间:
2014-09-05 19:55:41
阅读次数:
212