插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。
一、直接插入排序...
分类:
其他好文 时间:
2014-08-17 09:12:02
阅读次数:
211
插入排序的基本思想是:对于数组前边部分已经是排好序的了,对于接下来的元素查找其在前面的位置,插入之。如下图中1 2 4 7 已经排好序,接下来找到2的位置,插入到1和3之间。之后同样处理4和9.参考程序(C语言实现)如下:#includevoid Insection_Sort(int *A, in....
分类:
其他好文 时间:
2014-08-16 13:46:40
阅读次数:
182
算法描述:1.从第一个元素开始,该元素可以认为已经被排序;(j=0的那个元素)2.取出下一个元素,在已经排序的元素序列中从后向前扫描;10, 5, 2, 4, 75, 10, 2, 4, 72, 5, 10, 4, 72, 4, 5, 10, 72, 4, 5, 7, 103.如果元素(已排序)大于...
分类:
其他好文 时间:
2014-08-16 13:44:01
阅读次数:
210
1. 插入排序(1) 直接插入排序void StraightInsertionSort(std::vector& num) { if (num.size() == 0 || num.size() == 1) return; for (int i = 1; i = 0 && num.at(...
分类:
其他好文 时间:
2014-08-15 22:24:29
阅读次数:
412
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。
基本思想:
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2
希尔排序的实现代码:
#include
using name...
分类:
其他好文 时间:
2014-08-14 14:09:58
阅读次数:
170
插入排序1.直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,终于将全部无序区元素都移动到有序区完毕排序。要点:设立哨兵,作为暂时存储和推断数组边界之用。实现:VoidInsertSort(NodeL[],intlength){Inti,j;/...
分类:
其他好文 时间:
2014-08-13 18:18:27
阅读次数:
206
一、插入排序直接插入排序(Insertion Sort)的算法描写叙述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到对应位置并插入。插入排序在实现上,通常採用in-place排序(即仅仅需用到O(1)的额外空间的排序),因而在从后向前扫描过...
分类:
其他好文 时间:
2014-08-13 18:05:47
阅读次数:
272
测试代码如下。/** @hushunfeng 希尔排序 从小到大排列*/#include//单次希尔排序,即一次直接插入排序//array为需要排序的数组//dk为希尔排序算法中的增量void shellInsert(int *array,int dk) { //--- ...
分类:
其他好文 时间:
2014-08-13 12:59:06
阅读次数:
177
java常见的排序算法第一种:插入排序直接插入排序1,直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。(2)图示 1 public static vo...
分类:
编程语言 时间:
2014-08-12 13:09:34
阅读次数:
232
直接插入排序的时间复杂度的O(N^2),空间复杂度是O(1)。
下面是代码:
public class InsertionSort {
public void insertionSort(int[] in) {
int length = in.length;
int i, j;
for (i = 1; i < length; i++) {
int tmp = in[i];...
分类:
其他好文 时间:
2014-08-11 12:04:12
阅读次数:
194