不得不说的插入排序、实例及详细解说

原创 2013年12月06日 10:58:13

       很多人都玩过扑克牌,那么我们在将扑克牌正确插入到它在牌中的正确位置的过程就是一个插入排序的插入过程,两者的原理是一模一样的,就是待插入的牌(前面的牌是已经整理好的)和它前面的牌比较,如果前一张牌比它小或相等,则就放在该位置上,如果比它大,则往前挪一张牌,此时它的位置是刚才前一张牌的位置,这时在和前一张牌比,如果还是比它大,则继续往前移动,直到它的前一张牌比它小或等于它为止。同样按从大到小排也是一样的道理。

       下面来看一个C语言版本的实例:

#include "stdio.h"
#include "conio.h"
#define N  23   //N代表数组长度,C语言没有length属性,只能人为地宏定义一个参数?
void insert_sort(int A[])
{
    //假设0号元素是不用比的?
    int i=0,j,temp;
    for(i=1;i<N;i++)
    {   j=i;
        while(A[j]<A[j-1])
        {
           temp=A[j];
           A[j]=A[j-1];
           A[j-1]=temp;
           j--;
           if(j==0){ break;}
        }
    }
}
main()
{   /*0号元素没有参加排序,但必须有*/
    int a[N]={11,5,4,3,9,2,8,5,6,7,54,67,44,34,32,12,14,38,21,24,25,78,20},i;
    insert_sort(a);
    printf("insert_sort_array is already now\n");
    for(i=0;i<N;i++) /*0号元素是自行添加,不需要输出*/
        printf(" %d ",a[i]);
    getch();
}


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

相关文章推荐

希尔排序(shell排序)的详细解说,对插入排序算法的改进

希尔排序是D.L.Shell于1959年提出来的一种排序算法,在这之前排序算法的时间复杂度基本都是O(n2)的,希尔排序算法是突破这个时间复杂度的第一批算法之一。插入排序的效率在某些时候是很高的,比如...

[多图预警详细演示一步一步写算法导论]插入排序

过了冒泡排序,接下来是简单的插入排序 1.算法

单链表的插入排序(详细图解说明)

题目:实现一个单链表的插入排序 如图所示,解决这个问题的关键 (1)首先必须维护当前节点的前指针, (2)然后还要维护要插入的位置的前后指针, (3)每个要插入的节点都要从头开...

Java实例8 - 插入排序 Insertion Sort

/** * 选择排序的思想: * 每次循环前,数组左边都是部分有序的序列, * 然后选择右边待排元素,将其值保存下来 * 依次和左边已经排好的元素比较 * 如果小于左边的元素,就将左边的元素...

C实例——插入排序(简单插入)

算法描述:内排序的一种,分为简单插入排序、二分插入排序和SHELL排序,本例为第一种平云复杂度n^2。适用于待排数较少的情况。 分析:想想平时打扑克,每当拿起一张新牌,要比较手上牌的顺序选择一个较为...

数据结构排序详细解说(1)

  • 2009-11-27 11:11
  • 491KB
  • 下载

数据结构排序详细解说(2)

  • 2009-11-27 11:14
  • 506KB
  • 下载

常见的验证码与验证码识别工具详细实例解说

常见的验证码与验证码识别工具详细实例解说:  先说说写这个的背景 !  再看看部分识别结果  是不是看着很眼熟?    处理第一步,去背景噪音和二值化 ...

详细解说 STL 排序(Sort)

  • 2008-03-12 14:55
  • 304KB
  • 下载

详细解说 STL 排序

  • 2013-01-16 00:52
  • 116KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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