动图展示
算法时间复杂度: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