insert sort

原创 2013年12月04日 17:04:11

插入排序时一种原地排序算法,稳定的


伪代码

INSERT-SORT(A)

1    for i <- 2 to lenght[A]

2        do key <- A[j]

3        j <- i-1

4        while j > 0 and A[j] > key

5            do A[j+1] <- A[j]

6            j <- j-1

7        do A[j+1] <- key


#include <stdio.h>

void insertsort(int a[], int left, int right)
{
    int i;

	if (left > right)
        return;

    for (i = left+1; i <= right; i++) {
		int key = a[i];
        int j = i;

        while (j > left && a[j-1] > key) {
			a[j] = a[j-1];
            j--;
		}
        a[j] = key;
	}

    return;
}

int main(void)
{
    int i;
    int a[] = {1, 9, 2, 8, 3, 7, 4, 0, 6, 5};

/*
    for (i = 1; i < 10; i++) {
        int key = a[i];
		int j = i;
        while (j > 0 && a[j-1] > key) {
			a[j] = a[j-1];
            j--;
		}
        a[j] = key;
	}
*/
    insertsort(a, 0, 9);

    for (i = 0; i < 10; i++) {
		printf("%d ", a[i]);
	}

	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

(直接)插入排序INSERT_SORT

一、伪代码 /*INSERT_SORT(A)*/ for j = 2 to A.length key = A[j] //Insert A[j] into the second se...
  • u011852211
  • u011852211
  • 2016年10月05日 20:52
  • 768

插入排序(Insert Sort)

插入排序顾名思义,应该是在有序的序列中插入一个数据,并经过一系列变化,成为一个新的有序的序列。像是在玩扑克牌时,抓到的第一张牌是5,放在手里,就是一个有序的序列;抓到的第二张牌是3,则将3放在5的右面...
  • TB_Master
  • TB_Master
  • 2017年05月31日 16:16
  • 119

插入排序-Insert Sort

首先,把首个元素当做已排好的元素(如下图(a)中,4为已排好的元素)。 然后接着每步把下一个元素抽出来称为E元素(如下图(b)中,3为抽出来的元素E)。 E元素与前面的元素对比,如果比前一个元素小...
  • sherilindas
  • sherilindas
  • 2016年07月12日 23:26
  • 636

(直接)插入排序(Insert Sort)

/** * 3.1 直接插入排序: 每步将一个待排序的记录,按其顺序码大小插入到前面已经 * 排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止 *...
  • wenzi0615
  • wenzi0615
  • 2016年10月19日 05:09
  • 133

计数排序(Count Sort )与插入排序(Insert Sort)

计数排序法:计数数组适用于当前数组密集的情况。例如(2,3,5,4,2,3,3,2,5,4) 方法:先找出最大值最小值,之后统计每个数出现的次数,根据次数从小到大往数组里添加 计数排序法是一种不需要比...
  • a278087727
  • a278087727
  • 2016年11月18日 15:07
  • 55

数据算法之插入排序(insertSort)的Java实现

本文的代码来自于《数据结构与算法(JAVA语言版)》,是笔者在网上找到的资料,非正式出刊版物。笔者对代码一些比较难以理解的部分添加了注释和图解,欢迎大家来讨论。   插入排序方法的思想是,先以第一个...
  • claroja
  • claroja
  • 2016年12月27日 09:44
  • 362

sort函数中三个参数的用法

1、sort函数一般只对数组元素排序,而且必须知道地址。如对a[0]到a[n-1]共n个元素进行排序,用sort(ar,ar+n)。其中n可以为1,即对一个元素也可以使用sort函数。 2、可以有如下...
  • lz465350
  • lz465350
  • 2014年02月20日 20:43
  • 3104

无聊写排序之 ---- 插入排序(insert Sort)

插入排序(Insert Sort)基本的操作是:
  • dreamhougf
  • dreamhougf
  • 2014年10月22日 17:39
  • 378

插入排序(Insertsort)之Java实现

插入排序算法介绍 排序算法是最简单的算法,也是最基本的算法。顾名思义,插入排序就是把当前待排序的元素插入到一个已经排好序的列表里面。 一个非常形象的例子就是右手抓取一张扑克牌,并把它插入左手拿着的排好...
  • kimylrong
  • kimylrong
  • 2013年12月04日 17:07
  • 28695

对于qsort和sort使用效率的详细对比

测试环境 VS2017 思路:用qsort与sort分别对有n个随机数的数组进行m次排序。 平台:x64sort:头文件: algorithm 函数原型:template< class Rand...
  • qq_26341675
  • qq_26341675
  • 2017年04月17日 00:00
  • 801
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:insert sort
举报原因:
原因补充:

(最多只允许输入30个字)