zoukankan      html  css  js  c++  java
  • 插入排序算法

    C语言简单的插入算法:

    插入排序的基本思想:

    经过i-1遍处理后,a1a2ai-1己排好序。

    i遍处理仅将ai插入a 1a2ai-1的适当位置。使得a1a2ai成为有序序列。

    首先比較aiai-1,假设ai-1ai,则a1a2ai已经是有序序列,第i遍处理就结束了;否则交换aiai-1的位置。继续比較ai-1ai-2。直到找到某一个位置j(1ji-1)。使得aj aj+1时为止。

    实例图:



    排序过程:



    核心代码:

    void insertSort(int arr[], int length)
    {
    	int key;
    	int i, j;
        for(i = 1; i < length; i++)
    	{
           key = arr[i];
    	   for(j = i - 1; j>= 0; j--)
    	   {
    		   if(arr[j] >= key)
    		   {
    			   arr[j+1] = arr[j];
    		   }
    		   else
    			   break;
    	   }
    	   arr[j+1] = key;
    	}
    }


    測试例如以下:




    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    sipp如何避免dead call
    6174问题
    笨小熊
    scanf 与 cin 的区别
    谁获得了最高奖学金
    _int64、long long 的区别
    小光棍数
    简单排序法
    La=LaULb (循环链表)
    删除重复的数(顺序有序表)
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4635312.html
Copyright © 2011-2022 走看看