C++插入排序
倾向于将一组数据分为有序区和无序区,默认有序区存在一个数据,当无序区第一个数据进入有序区时,跟有序区第一个数据作比较和排序。此后从无序区依次取出一个数据,重复上述步骤。
以下是代码展示.
// A code block
void insertsort(vector<int>&arr) {
int tmp = 0;
int j = 0;
for (int i = 1; i < arr.size(); i++) {
tmp = arr[i];
for (j = i - 1; j >= 0 && arr[j] > tmp; j--) {//每次取出一个元素
arr[j + 1] = arr[j];
}
arr[j + 1 ]=tmp;
}
}
以下是测试数据
// An highlighted block
int main() {
vector<int>arr = { 3,5,2,6,10,9 ,0};
insertsort(arr);
for (int i = 0; i < arr.size(); i++) {
cout << arr[i] << endl;
}
}