码迷,mamicode.com
首页 > 其他好文 > 详细

排序算法——直接插入排序

时间:2014-05-12 20:59:47      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   c   

直接插入排序是一种实现较为简单的排序算法。

基本的思想是,从数组的第二个元素起,每次选取一个元素,与前面已经排序数组的元素比较,找到该元素的合适位置。

不多说,直接上代码。

bubuko.com,布布扣
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;

const int arrSize = 16;

void InsertSort(int* arr, int size)
{
    int i = 0;
    int j = 0;
    int key = 0;

    for (j = 1; j != arrSize; ++j) {
        key = arr[j];
        i = j - 1;
        while (i >= 0 && arr[i] > key) {
            arr[i+1] = arr[i];
            --i;
        }
        arr[i+1] = key;
    }
}

int main()
{
    srand((unsigned int)time(NULL));
    int arr[arrSize];

    for (int index = 0; index != arrSize; ++index) {
        arr[index] = rand() % 1000;
    }

    InsertSort(arr, arrSize);

    for (int index = 0; index != arrSize; ++index) {
        cout << setw(4) << arr[index] <<  ;
        if ((index+1) % 4 == 0) {
            cout << endl;
        }
    }

    return 0;
}
bubuko.com,布布扣

 

直接插入排序的最坏情况下的时间复杂度是O(n2),空间复杂度为O(1)。

排序算法——直接插入排序,布布扣,bubuko.com

排序算法——直接插入排序

标签:style   blog   class   code   java   c   

原文地址:http://www.cnblogs.com/wuhanqing/p/3722149.html

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