引言:
插入排序作为最简单易于理解的排序算法,基本实现比较简单。本文详细介绍直接插入排序,并给出实现,简单的介绍折半插入排序,并给出2-路插入排序和表插入排序两种插入排序,但并未给出具体实现。
一、直接插入排序
直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。
...
分类:
其他好文 时间:
2014-09-07 06:35:24
阅读次数:
256
希尔排序又称“缩小增量排序”,它的基本思想是:先将整个待排记录序列分割成若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对记录进行一次直接插入排序。
希尔排序的一个特点是:子序列的构成不是简单地“逐段分割”,而是将相隔某个“增量”的记录组成一个子序列。这就使得希尔排序中关键字较小的记录不是一步一步地往前挪动,而是一次按照“增量”的大小跳跃式地往前移,从而使...
分类:
其他好文 时间:
2014-09-07 01:08:34
阅读次数:
212
本文主要说明插入排序、shell排序两种排序方法。一、插入排序 算法思想: 假定这个数组的序是排好的,然后从头往后,如果有数比当前外层元素的值大,则将这个数的位置往后挪,直到当前外层元素的值大于或等于它前面的位置为止.这具算法在排完前k个数之后,可以保证a[1…k]是局部有序的,保证了插入过程的正....
分类:
其他好文 时间:
2014-09-07 00:58:44
阅读次数:
247
引言:
插入排序作为最简单易于理解的排序算法,基本实现比较简单。本文详细介绍直接插入排序,并给出实现,简单的介绍折半插入排序,并给出2-路插入排序和表插入排序两种插入排序,但并未给出具体实现。
一、直接插入排序
直接插入排序的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。
算法描述:
步骤1、将待排序的一组记录中的第...
分类:
其他好文 时间:
2014-09-06 22:34:07
阅读次数:
257
算法问题分类---Top-K问题与多路归并排序...
分类:
其他好文 时间:
2014-09-06 12:27:43
阅读次数:
236
一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立...
分类:
其他好文 时间:
2014-09-06 10:56:23
阅读次数:
263
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
1、插入排序 1)算法简介 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上...
分类:
编程语言 时间:
2014-09-05 18:33:52
阅读次数:
295
用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等。插入排序:package org.rut.util.algorithm.support;import org.rut.util.algorithm.SortUtil;/*....
分类:
编程语言 时间:
2014-09-05 17:57:31
阅读次数:
204
1. 快排 详见之前博文快速排序算法。 2. 堆排序 详见之前博文非递归方法的堆排序实现。 3. 简单排序(冒泡排序、选择排序和插入排序) 代码如下: #include #include #include #define N 20static void show(int *arr, int len)...
分类:
其他好文 时间:
2014-09-05 14:08:51
阅读次数:
198