zoukankan      html  css  js  c++  java
  • 直接插入排序

      插入排序主要思想是:把要排序的数字插入到已经排好的数据中。例如12356是已经排好的序,我们将4插入到他们中,时插入之后也是排好序的。这里显而易见是插入到3的后面。变为123456。实现思路:插入排序就是先是一个有序的数据,然后把要插入的数据插到指定的位置,而排序首先给的就是无序的,我们怎么确定先得到一个有序的数据呢?答案就是:如果只有一个,当然是有序的咯。我们先拿一个出来,他是有序的,然后把数据一个一个插入到其中,那么插入之后是有序的,所以直到最后都是有序的。。哈哈。结果就出来了!
    当然在写的时候还是有一个技巧的,不需要开额外的数组,下标从第二个元素开始遍历知道最后一个,然后插入到前面已经有序的数据中。这样就不会浪费空间了。插入排序用处还是很多的,特别是链表中,因为链表是指针存放的,没有数组那么好准确的用下标表示,插入是简单有效的方法。

    #include <iostream>
    
    using namespace std;
    
    void InsertionSort(int unsorted[],int N)
    {
        int j,p,temp;
        for(p=1;p < N;p++){
         
            temp = unsorted[p];
            for(j = p;j>0&&unsorted[j-1]>temp;j--)
                unsorted[j] = unsorted[j-1];
            unsorted[j] = temp;
        
        
        }
    }
    
    int main()
    {
        int a[5] = {1,8,6,7,14};
        InsertionSort(a,5);
        for(int i=0;i<5;i++){
    
            cout<<a[i]<<endl;
        }
    
        return 0;
    }

  • 相关阅读:
    Flutter
    Flutter
    项目冲刺——第二天
    练习三:用例图
    项目冲刺——第一天
    作业六:团队项目冲刺前期准备
    作业四:软件案例分析
    作业五:需求规格说明书
    【非作业部分】队内暂时安排
    第二次练习——团队展示
  • 原文地址:https://www.cnblogs.com/jameskun77/p/3317668.html
Copyright © 2011-2022 走看看