C排序算法之插入排序

原创 2012年03月29日 23:09:24
/*插入排序法*/


#include <stdio.h>
#include <stdlib.h>

/*
排序思路:在第P次排序时将P位置上的数据插入到前P-1个数据中
时间复杂度(O(N^2))

*/

初试

初始 34 8 64 51 32 21 移动的位置
在P=1   之后             8                     34                64           51            32           21           1                    
在P=2之后    8 34 64 51 32 21 0
在p=3之后 8 34 51 64 32 21 1
在p=4之后 8 32 34 51 64 21 3
在p=5之后 8 21 32 34 51 64 4



typedef int ElementType;


void InsertSorted(ElementType A[],int N)
{
int j,p;//p表示第p趟排序


ElementType Tmp;
for (p=1;p<N;p++) {//进行N-1趟排序


Tmp = A[p];

//从j=p位置向前查找,当查找到的数比Tmp大的时候就将这些数向后移动一位
for(j=p;j>0&&A[j-1]>Tmp;j--)
A[j]=A[j-1];

A[j] = Tmp;
}


}



void main()
{
ElementType a[6] = {8,34,64,51,32,21};


InsertSorted(a,6);


for(int i=0;i<6;i++)
printf("%d ",a[i]);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C Tips: 排序算法:插入排序(Insert sorting)

代码如下: void InsertSort(void** array, size_t count, int(*cmp)(const void *, const void *)) { size_t ...

排序算法(c实现)------- 插入排序

插入排序(C实现)

八大排序算法及完整c代码—直接插入排序

基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。...

常用排序算法之插入排序c及lua实现

插入排序(Insertion Sort)的算法描述是一种简单直观的排。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-p...
  • shy_hc
  • shy_hc
  • 2014年07月08日 11:01
  • 614

排序算法(C实现)---------- 折半插入排序

前面已经写过一篇插入排序,今天

插入排序(排序算法的入门方法)

  • 2012年03月17日 10:56
  • 10.39MB
  • 下载

排序算法-插入排序

  • 2012年07月18日 15:31
  • 585B
  • 下载

c/c++常用算法(11) -- 基本排序算法(插入排序)

插入排序         采用的是以“玩桥牌者”的方法为基础的。即在考察记录Ri之前,设以前的所有记录R1, R2,…., Ri-1已排好序,然后将Ri插入到已排好序的诸记录的适当位置。...

内部排序算法1(插入排序)

内部排序算法1(插入排序) 1. 插入排序 2. 折半插入排序 3. 希尔排序...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C排序算法之插入排序
举报原因:
原因补充:

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