插入排序

来源:互联网 发布:java如何发送短信 编辑:程序博客网 时间:2024/06/05 06:02

自己写的一个demo:

#include <iostream>void insertionSort(int a[], int size) {    int i = 0;    int j = 0;      for(i = 0; i < size; i++) {        for(j = 0; j < i; j++) {            if(a[j] > a[i]) {                break;            }        }        int tmp = a[i];        for(int k = i; k > j; k--) {            a[k] = a[k-1];        }        a[j] = tmp;    }       for(i = 0; i < size; i++) {        std::cout << a[i] << ", ";          }   std::cout << std::endl;}int main() {    int a[] = {32, 353, 66, 3, 55, 99};    insertionSort(a, 6);    return 0;   }

插入排序的最快的时间 为N(当数据本来就排序好了), 最差时间复杂度和平均时间复杂度都是O(N²);