码迷,mamicode.com
首页 >  
搜索关键字:希尔    ( 1342个结果
详谈排序算法之插入类排序(两种思路实现希尔排序)
1. 排序( sorting) 的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列。其确切的定义为:    假设有n个数据元素的序列{R1 , R2 , … , Rn},其相应关键字的序列是{K1 , K2 , … , Kn} ,通过排序要求找出下标 1 , 2 , … , n的一种排列p1 , p2 , … , pn,使得相应关键字满足如下的非递...
分类:编程语言   时间:2015-02-15 12:14:26    阅读次数:182
How browsers work【中文版】
序言 这是一篇全面介绍 Webkit 和 Gecko 内部操作的入门文章,是以色列开发人员塔利·加希尔大量研究的成果。在过去的几年中,她查阅了所有公开发布的关于浏览器内部机制的数据(请参见资源),并花了很多时间来研...
分类:其他好文   时间:2015-02-10 15:37:40    阅读次数:320
插入排序
一.介绍插入排序中有比较简单的直接插入排序,也有在直接插入排序上升级版本:希尔排序.插入排序(insertion sort)的基本思想是:每趟将一个元素,按其关键字大小插入到它前面已排序的子序列中,使得插入后的子序列仍是排序的,依此重复,直到全部元素插入完毕.二.详解1.直接插入排序思想指导方法:首...
分类:编程语言   时间:2015-02-07 22:52:10    阅读次数:212
数据结构之插入排序与希尔排序
1.直接插入排序 直接插入排序是一种最简单的排序算法,它的基本操作是将一个记录插入到已经排序好的序列中,从而得到一个新的有序表。直接插入排序算法原理如下图所示: 直接插入排序算法如下:void InsertSort(int arr[],int length) { int key,j; for(int i=1;i<length; i) { ke...
分类:编程语言   时间:2015-02-07 18:55:24    阅读次数:155
【算法】希尔排序C语言实现
上一篇文章我们一起学习了直接插入排序,它的原理就是把前i个长度的序列变成有序序列,然后循环迭代,直至整个序列都变为有序的.但是说来说去它还是一个时间复杂度为(n^2)的算法,难道就不能再进一步把时间复杂度降低一阶么?可能有很多同学说快速排序,堆排序,我都会,这些简单的插入排序我都不屑于用.确实,以上几种算法相对于之前的O(n^2)级别的算法真的是弱爆了,效率可能还会差上千万倍,但是我们不妨翻看一下...
分类:编程语言   时间:2015-02-06 16:56:28    阅读次数:121
数据结构——排序(php代码实现)
<?php /** *BubbleSort0($arr):冒泡排序 *BubbleSort1($arr):冒泡排序——优化 *BubbleSort2($arr):冒泡排序——另一种实现方法 *SelectSort($arr):选择排序 *InsertSort($arr):插入排序 *ShellSort($arr):希尔排序 */ classSort{ /** *冒泡排序:指的是两两相邻的数据直接..
分类:编程语言   时间:2015-02-05 07:13:33    阅读次数:167
希尔排序
插入排序的算法复杂度为O(n2),但假设序列为正序可提高到O(n),并且直接插入排序算法比較简单,希尔排序利用这两点得到了一种改进后的插入排序。一. 算法描写叙述希尔排序:将无序数组切割为若干个子序列,子序列不是逐段切割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小.....
分类:编程语言   时间:2015-02-04 18:28:19    阅读次数:177
几种排序算法及其代码实现(一)
一、插入排序 ?思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置,直到全部插入排序完为止。 ?关键问题:在前面已经排好序的序列中找到合适的插入位置。 ?方法: –直接插入排序 –二分插入排序 –希尔排序 ①直接插入排序(从后向前找到合适位置后插入) 1、基本思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到...
分类:编程语言   时间:2015-01-29 17:47:36    阅读次数:206
希尔排序
希尔排序是不稳定的,但是它比直接插入排序要快得多。 希尔排序又称为缩小增量排序,这是对直接插入排序的一种改进方法,其过程是:首先以d1 (0进行直接插入排序。然后,以d2(0 一般的初次取序列的一半为增量,以后每次减半,直到增量为1。 借用百度百科里的一张图,更直观一些。 // 希尔排序 x待排序数组, n数组长度 private static void shellSor...
分类:编程语言   时间:2015-01-29 17:45:49    阅读次数:199
算法系列笔记1(排序)
本次主要记录一些经典的排序算法,其中包括冒泡排序、直接选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序、桶排序以及计数排序和基数排序。首先会给出这些排序算法的基本思想,然后给出实现的代码,最后会给出其时间复杂度。 1:冒泡排序 思想: (1):比较相邻的前后两个元素,如果后面的数据小于前面的数据,则交换这两个数据的位置。这样经过一次遍历,最小的元素将在第0个位置,属于”冒泡”. (...
分类:编程语言   时间:2015-01-29 17:39:27    阅读次数:288
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!