一、声明 算法思路部分借鉴于《算法导论》(第三版),实现过程均属作者原创,转载或引用请注明出处。二、算法概述 插入排序算法适用于少量元素的排序。插入排序的过程就好比排序一副扑克牌。开始时,左手为空并且桌子上的牌面朝下。然后,每次从桌子上拿走一张扑克牌并将它插入左手中正确的位置。为了找到牌的正确位置....
分类:
编程语言 时间:
2014-08-04 13:45:47
阅读次数:
235
一、直接插入排序算法:void insertSort(int* data, int len){ int sentry;//哨兵 int i,j; for(i = 1; i 1)趟排序时,前(i-1)个记录已经有序,于是查找插入位置我们可以用折半查找。算法如下: 1 void bI...
分类:
其他好文 时间:
2014-07-26 00:41:36
阅读次数:
284
二分法插入排序算法思想简单描写叙述:在插入第i个元素时,对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,假设小,则对前半再进行折半,否则对后半进行折半,直到left>right,然后再把第i个元素前1位与目标位置之间的全部元素后移,再把第i个元素放在目标位置上。二分法没有排序,仅仅有查找。...
分类:
其他好文 时间:
2014-07-22 22:46:36
阅读次数:
250
希尔排序(Shell
Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2
希尔排序是基于插入排序的以下两点性质而提出改进方法的:
1.插入排序在对几乎已...
分类:
其他好文 时间:
2014-07-19 12:04:01
阅读次数:
202
直接插入排序是一种比较简单的排序方法,他的原理类似于我们玩牌的时候抓牌,手中的牌是按照一定的顺序排列的,然后摸到的牌先进行查找顺序,将牌插到应该插入的地方,直到最后一张牌的插入,那么手中的牌都是有序的。
数列的直接插入排序也是这样的,将第一个数看做是排列有序的数列,然后将后面的数依次插入到数列中:
代码如下
void _insert_sort(int *A,int size)
{
int ...
分类:
其他好文 时间:
2014-07-19 02:35:06
阅读次数:
186
算法思想: 对于一个已排好序的数组,只要将新加入的元素插入到相应的位置,该数组仍是排序数组。算法实现:INSERTION_SORT(A) for i in 1 to lenthOf A -1 value = A[i] for j in i-1 to 0 ...
分类:
其他好文 时间:
2014-07-16 18:38:28
阅读次数:
163
以下三个验证性实验都做。(1)直接插入排序算法验证。(2)快速排序算法验证。(3)直接选择排序算法验证。#include#includeusing namespace std;class dishizhang{public: int a[10]; int b[10]; dishiz...
分类:
其他好文 时间:
2014-07-06 17:58:08
阅读次数:
176
//希尔排序在直接插入排序算法中,每次插入一个数,使有序序列仅仅添加1个节点,而且对插入下一个数没有提供不论什么帮助。假设比較相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比較就可能消除多个元素交换。D.L.shell于1959年在以他名字命名的排序算法中实现了这一思想。算法先...
分类:
其他好文 时间:
2014-07-02 17:20:07
阅读次数:
192
NOJ——1062直接插入排序时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 总提交:446 测试通过:212描述给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中直接插入排序算法进行排序,并输出排序过程中每趟及最后结果...
分类:
其他好文 时间:
2014-07-01 21:00:49
阅读次数:
189
一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:
从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3,直到找到已排序的元素小于或者等于新元素的位置将新元素插入到该位置后重复步骤2~5
#! /usr/bin/env python
# -*- coding: ut...
分类:
编程语言 时间:
2014-07-01 06:58:27
阅读次数:
255