插入排序的重点在于从后往前面的有序列推进,需要注意到达终点时的处理与其他不同。
#include <iostream>
using namespace std;
int arr[1001];
void insert_sort(int n){
int tmp;
for(int i = 1; i < n; i++){
tmp = arr[i];
for(int j = i-1; j >= 0; j--)
if(tmp < arr[j]) {
arr[j+1] = arr[j];
if(j == 0) { arr[0] = tmp; break; } //arrive the end
}
else {
arr[j+1] = tmp;
break;
}
}
}
int main(){
int n;
cin >> n;
for(int i = 0; i < n; i++) cin >> arr[i];
insert_sort(n);
for(int i = 0; i < n; i++) cout << arr[i] << " ";
cout << endl;
}
本文详细介绍了一种简单的排序算法——插入排序。该算法通过逐步构建已排序的部分来对数组进行排序,每次从未排序部分取出一个元素并将其放置到已排序部分的正确位置。文章通过具体的C++实现代码展示了插入排序的工作原理。
789

被折叠的 条评论
为什么被折叠?



