1、算法描述
2、C++实现
#include<iostream>
using namespace std;
void insertsort(int arr[],int length) {
int i = 1;
while (i<length)
{
int preIndex = i - 1;
if (arr[preIndex] > arr[i])
{
int current = arr[i];
while (preIndex >= 0 && arr[preIndex] > current)
{
arr[preIndex + 1] = arr[preIndex];
preIndex = preIndex - 1;
}
arr[preIndex + 1] = current;
}
i += 1;
}
}
int main() {
int arr[] = { 9,3,1,18,3,2,1,0,13,18,100 };
int length = sizeof(arr) / sizeof(arr[0]);
cout << "排序前数组为:" << endl;
for (int i = 0; i < length; i ++) {
cout << arr[i];
cout << "\t";
}
cout << endl;
insertsort(arr, length);
cout << "排序后数组为:" << endl;
for (int i = 0; i < length; i++) {
cout << arr[i];
cout << "\t";
}
system("PAUSE");
}