算法导论开篇就在讲排序算法,首先是最基础的插入排序,过程类似于打牌的时候将手里的牌按大小排好——不断摸牌,将新牌与手里的牌作比较,插入到左侧牌比它小,右侧牌比它大的位置。
基础中的基础,算法实现如下:
#include <iostream>
using namespace std;
int main()
{
int N;
while(cin >> N){
int arr[N];
for(int i = 0; i < N; i++){
cin >> arr[i];
}
for(int i = 1; i < N; i++){
int temp = arr[i];
int j = i;
while(j > 0 && arr[j-1] > temp){
arr[j] = arr[j-1];
j--;
}
arr[j] = temp;
}
for(int k = 0; k < N; k++){
cout << arr[k] << " ";
}
cout << endl;
}
}