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语言实现直接插入排序

数据结构之---C语言实现直接插入排序
  • u012965373
  • u012965373
  • 2015年09月06日 23:01
  • 5414

【算法】直接插入排序C语言实现

不知道大家喜不喜欢打扑克?哈哈,我就挺喜欢的,尤其是三人斗地主,很喜欢.现在我来描述一幅画面看看大家熟不熟悉. 我抓牌的习惯是,在抓牌的时候,我要看着我的牌,看看牌的状况,有没有大小鬼,有几个2,...
  • lchad
  • lchad
  • 2015年02月06日 00:44
  • 2163

c语言实现直接插入排序(正序和逆序)

#include struct DataType { int data; }; struct Sqlist { DataType R[20]; int length; }; //直接插入排...
  • jiujiu28
  • jiujiu28
  • 2015年09月07日 09:03
  • 1165

排序算法之插入排序<Insertion_Sort>及其C语言代码实现

概述 一个插入排序是另一种简单排序,它的思路是:每次从未排好的序列中选出一个元素插入到已排好的序列中。它的算法步骤可以大致归纳如下: 1. 从未排好的序列中选出一个元素,并把它赋值给temp变量...
  • gl486546
  • gl486546
  • 2016年11月06日 08:57
  • 2604

C++简单排序算法之插入排序

直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的纪录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的纪录插入完为止,得到一个新的有序序列。[1] 例如,已知待排序的一...
  • zhengjuexi4456
  • zhengjuexi4456
  • 2016年09月08日 23:50
  • 654

排序算法c语言描述---直接插入排序

排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析。 文章规划: 一。通过自己对排序算法本身的理解,对每个方法写个小测试程序。 ...
  • hitwhylz
  • hitwhylz
  • 2013年08月10日 17:59
  • 8810

几种基本的排序算法:选择排序、插入排序、冒泡排序

选择排序(Selection sort)、插入排序(Insertion sort)与冒泡排序(Bubble sort)這三个排序方式是初学排序所必须知道的三个基本排序方式,它们由于速度不快而不实用(时...
  • wuxianglong
  • wuxianglong
  • 2011年10月13日 11:59
  • 7572

直接插入排序的c语言实现

直接插入排序即是在要排序的数组中,假设前n-1(n>=2)个数已经是排好序的,现在要把第n个数插入到前n个已经排好序的数组中,使得这n个数也变成有序的,如此反复循环,使得要排序的数组中的最后一个元素也...
  • xulu_258
  • xulu_258
  • 2016年05月03日 21:01
  • 1664

剑指Offer--排序算法小结

Offer来了(Java版)——排序算法小结前言     毕业季转眼即到,工作成为毕业季的头等大事,必须得认认真真进行知识储备,迎战笔试、电面、面试。     许久未接触排序算法了。平时偶尔接触到时自...
  • sunhuaqiang1
  • sunhuaqiang1
  • 2016年07月29日 08:31
  • 47096

算法导论的python实现之插入排序

在排序中,可能大家最先接触也最容易想到的应该是冒泡排序或者选择排序,然而在算法导论一书中却是从插入排序开始讨论,其实现思路类似于整理纸牌的过程。从一堆牌中选择第一张拿在手中,然后每拿一张牌均在手中找到...
  • u014775342
  • u014775342
  • 2015年11月30日 10:40
  • 589
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C排序算法之插入排序
举报原因:
原因补充:

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