最近准备花时间把算法导论详细的看一遍,强化一下算法和数据结构的基础,将一些总结性的东西写到博客上去。一.插入排序
算法思想:如果一个数组A,从A[1–n-1]都是有序的,然后我们将A[n]插入到A[1–n-1]的某个合适的位置上去那么就可以保证A[1–n]都是有序的。这就是插入排序的思想;具体实现的时候我们将数组的第一个元素看出有序,然后从第二个元素开始按照上面的步骤进行插入操作,直到插入...
分类:
编程语言 时间:
2015-03-06 23:41:27
阅读次数:
369
二分插入排序算法 一、基本思想:源自于二分查找,假设表中元素是按升序排列,将待插入的关键字与表中间位置记录的关键字与作比较。如果小于该关键字,则将元素插入后面的子表中,反之,如果大于该关键字,则将元素插入前面的子表中。反复迭代,直至所有关键字全部插入表中。 二、C 语言代码: 1 #...
分类:
编程语言 时间:
2015-03-05 22:16:49
阅读次数:
132
插入排序的算法复杂度为O(n2),但假设序列为正序可提高到O(n),并且直接插入排序算法比較简单,希尔排序利用这两点得到了一种改进后的插入排序。一. 算法描写叙述希尔排序:将无序数组切割为若干个子序列,子序列不是逐段切割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小.....
分类:
编程语言 时间:
2015-03-05 22:15:14
阅读次数:
153
要点希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。该方法因DL.Shell于1959年提出而得名。希尔排序的基本思想是:把记录按下标的一定增量 gap 分组,对每组记录采用直接插入排序方法进行排序。随着增量逐渐减小,所分成的组包含的记录越来越多,到...
分类:
编程语言 时间:
2015-03-05 19:16:11
阅读次数:
242
八大排序算法实现
插入排序算法实现
希尔排序算法实现
选择排序算法实现
冒泡排序算法实现
归并排序算法实现
快速排序算法实现
堆排序算法实现
基数排序算法实现...
分类:
编程语言 时间:
2015-02-15 15:11:43
阅读次数:
154
1.1. 算法思想
直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的纪录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的纪录插入完为止,得到一个新的有序序列
插入排序的算法思路:
(1)设置监视哨r[0],将待插入纪录的值赋值给r[0];
(2)设置开始查找的位置j;
(3)在数组中进行搜索,搜索中将第j个纪录后移,直至r[0].key≥r[j].key为...
分类:
编程语言 时间:
2015-02-13 21:12:32
阅读次数:
266
一.插入排序1.算法简介插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描...
分类:
编程语言 时间:
2015-02-11 16:16:36
阅读次数:
213
插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向...
分类:
编程语言 时间:
2015-02-11 08:11:21
阅读次数:
137
算法步骤: 1.从第一个元素开始,该元素可以认为已经被排序 2.取出下一个元素a,在已经排序的元素序列中从后向前扫描 3.如果已排序中的元素b大于a,则将元素b后移一个位置 4.重复步骤3,直到找到已排序的元素x小于或者等于元素a 5.将元素a插入到x的后面 6.重复步骤2~5 public sta...
分类:
编程语言 时间:
2015-02-09 21:28:37
阅读次数:
149
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