插入排序C++给定n个整数,请按照从小到大的顺序排序。 输入格式: 第一行数字n,1<=n<=100000 第二行n个整数,以一个空格分隔 输出格式: 从小到大排序后的数字,以一个空格分隔
时间: 2024-09-07 19:04:48 浏览: 130
问题描述:求从1~n的正整数中取出k(k<=n)个不重复整数的所有组合.pdf
插入排序是一种简单的排序算法,它的基本思想是将待排序的元素逐个插入到已排序序列的适当位置。以下是使用C++实现插入排序的一个示例:
```cpp
#include <iostream>
using namespace std;
void insertionSort(int arr[], int n) {
for (int i = 1; i < n; ++i) {
int key = arr[i];
int j = i - 1;
// 将比关键值小的元素向右移动
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key; // 插入关键值
}
}
// 主函数用于读取输入并输出排序结果
int main() {
int n;
cin >> n;
if (n <= 0 || n > 100000) {
cout << "Invalid input! Please enter a number between 1 and 100000." << endl;
return 0;
}
int arr[n];
for (int i = 0; i < n; ++i) {
cin >> arr[i];
}
insertionSort(arr, n);
// 输出排序后的数组
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
当你运行这个程序,它会接收用户输入的整数,并使用插入排序对其进行排序。注意,这个程序假设输入数据范围在1到100000之间,如果超出范围,主函数会给出错误提示。
阅读全文