C++之算法,插入排序

插入排序

总结:不懂就画图!!!!!!!!!!!!!!!!!!!!!!

思路:

n位数组,从n=1开始,与前面的比较,若有自己比对方小,则插入到对方前面,后面的依次下移。

如图,

  

 

 

#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void insertSort(int array[] , int len){
    for (int i = 1; i < len; i++)
    {
        for (int j = 0; j < i; j++)
        {
            if (array[i] < array[j])
            {
                int k = i;
                int temp = array[i];
                while (k > j)
                {
                    array[k] = array[k-1];
                    k--;
                }
                array[j] = temp;
            }
        }
    }

}


int main ()
{
    int data[] = {34,65,12,43,67,5,78,10,3,70} , k;
    int len=sizeof(data)/sizeof(int);
    insertSort(data , len);
    for (int i = 0; i < len; i++)
    {
        cout<<data[i]<<"\n";
    }
}

 

posted on 2014-11-05 15:38  allen__  阅读(353)  评论(0编辑  收藏  举报

导航