排序算法·插入排序

来源:互联网 发布:idea关联源码 编辑:程序博客网 时间:2024/06/07 07:16
算法讲解方面参阅下面这本书即可,这里只给出自己练习时实现的代码。参考书籍:《算法设计与分析基础》

1.伪代码

算法: InsertionSort(A[0...n-1])     //该算法用插入排序对给定的数组排序     //输入:一个可排序数组A[0...n-1]     //输出:非降序排列的数组A[0...n-1]     for i = 1 to n-1 do         v = A[i]         j = i - 1         while j >= 0 and A[j] > v do             A[j+1] = A[j]             j = j - 1         A[j+1] = v

2.CPP实现:

#include <iostream>using namespace std;void insertion_sort(int arr[], int length);int main(){    int arr[] = {25, 45, 15, 40, 90, 5, 85, 75, 32, 65, 10, 5, 100, 15};    int length = sizeof(arr) / sizeof(int);    insertion_sort(arr, length);    for (int i = 0; i < length; i++)        cout << arr[i] << " ";    cout << endl;    return 0;}void insertion_sort(int arr[], int length){    int n = length;    for(int i = 1; i <= n-1; i++){        int v = arr[i];        int j = i - 1;        while(j >= 0 && arr[j] > v){            arr[j+1] = arr[j];            j = j - 1;        }        arr[j+1] = v;    }}

3.算法复杂度:
输入规模:n
基本操作:数值比较
复杂度:


这里写图片描述