【数据结构算法】:C++&Python实现插入排序

动图展示

算法时间复杂度:o(n*n)

C++

//============================================================================
// Name        : InsertSort.cpp
// Author      : YL
// Version     :
//============================================================================

#include <iostream>
#define ArrayLen 10
using namespace std;

void InsertSort(int* array);

int main() {
    int array[ArrayLen] = {1,5,2,9,8,7,4,3,0,6};
    InsertSort(array);
    for(int i = 0;i<ArrayLen;i++)
    {
        cout<<array[i]<<endl;
    }
    return 0;
}

void InsertSort(int* array)
{
    int* local_array = array;
    int current;
    int preIndex;
    for(int i = 1;i<ArrayLen;i++)
    {
        preIndex = i-1;
        current = local_array[i];
        while(preIndex>=0 && local_array[preIndex]>current)
        {
            local_array[preIndex+1] = local_array[preIndex];
            preIndex--;
        }
        local_array[preIndex+1] = current;
    }

}

Python

__author__ = '__yuanlei__'

def InsertSort(arr):
    for i in range(1,len(arr)):
        preIndex = i -1
        current = arr[i]
        while (preIndex>=0 and arr[preIndex]> current):
            arr[preIndex+1] = arr[preIndex]
            preIndex -= 1
        arr[preIndex+1]=current
    return  arr

if __name__ == '__main__':
    arr = [0,5,3,6,9,7,1,2,8]
    output = InsertSort(arr)
    print output

猜你喜欢

转载自blog.csdn.net/qiu931110/article/details/80390751