码迷,mamicode.com
首页 > 编程语言 > 详细

插入排序 C&&C++

时间:2019-11-28 11:45:27      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:step   null   after   srand   div   str   log   std   void   

(blog主要用于展示算法流程)
插入排序算法:通过对未排序的数据逐个插入合适的位置而完成排序工作
 
 
 
流程:
(1)先对数组前两个数据进行从小到大排序
(2)将第三个数据与前两个数据比较,将第三个数据插入合适的位置
(3)将第四个数据插入已排序好的前三个数据中
(4)不断重复,直到把最后一个数据插入合适的位置
 
 
 
 
 
 
 
 
 
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
void InsertionSort(int a[],int len)
{
    int t;
    for (int i = 0; i < len; i++)
    {
        t=a[i];
        int j=i-1;
        while (j>=0&&t<a[j])
        {
            a[j+1]=a[j];
            j--;
        }
        a[j+1]=t;
        cout<<"Sort result after"<<i+1<<"step:";     //输出每一步的排序结果
        for(int k=0;k<len;k++) cout<<a[k]<<" ";
        cout<<endl;
    }
}
int main()
{
    int a[10];
    srand(time(NULL));
    cout<<"Array before sorting:"<<endl;
    for (int i = 0; i < 10; i++)                                 //采用随机数作为数组输入
    {
        a[i]=rand()/1000;
        cout<<a[i]<<" ";
    }
    cout<<endl;
    InsertionSort(a,10);
    cout<<"Array after sort:"<<endl;
    for (int i = 0; i < 10; i++) cout<<a[i]<<" ";
    cout<<endl;
    return 0;
    
}

插入排序 C&&C++

标签:step   null   after   srand   div   str   log   std   void   

原文地址:https://www.cnblogs.com/Arthas8086/p/11948832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!