c++ 直接插入排序 输入n(n<20)个整数,输出其升序排序的结果。 输入说明: 第一行输入n 第二行输入n个整数 输入说明: 输出n个整数升序排序的结果 输入示例: 5 3 2 1 5 4 输出示例: 1 2 3 4 5
时间: 2023-11-27 19:53:06 浏览: 22
以下是使用 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;
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;
}
```
输入示例:
```
5
3 2 1 5 4
```
输出示例:
```
1 2 3 4 5
```
相关问题
c++输入若干个正整数,升序排序后输出。
在C++中,你可以使用标准库中的`vector`来存储输入的正整数,并使用`sort`函数对它们进行升序排序。以下是一个简单的示例代码,展示了如何实现这一功能:
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // 包含sort函数
int main() {
std::vector<int> numbers; // 创建一个空的整数向量
int input;
// 循环输入正整数,直到输入非正整数为止
std::cout << "请输入若干个正整数,输入非正整数结束:" << std::endl;
while (std::cin >> input && input > 0) {
numbers.push_back(input); // 将输入的正整数添加到向量中
}
// 使用标准库中的sort函数对向量中的元素进行升序排序
std::sort(numbers.begin(), numbers.end());
// 输出排序后的结果
std::cout << "升序排序后的结果:" << std::endl;
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在这段代码中,程序首先提示用户输入若干个正整数,并在每次输入后检查是否为非正整数以结束输入。然后,使用`std::sort`函数对收集到的正整数进行排序。最后,输出排序后的结果。
c++编程实现:输入n个数,对它们进行升序排序并输出结果。程序要求有自己写的详细注释
好的,下面是c++编程实现输入n个数,对它们进行升序排序并输出结果的代码,带有详细注释:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入要排序的数的个数:";
cin >> n; // 输入要排序的数的个数
int a[n]; // 定义一个长度为n的数组
// 输入n个数
for (int i = ; i < n; i++) {
cout << "请输入第" << i + 1 << "个数:";
cin >> a[i];
}
// 冒泡排序,升序排列
for (int i = ; i < n - 1; i++) {
for (int j = ; j < n - i - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
// 输出排序后的结果
cout << "排序后的结果为:";
for (int i = ; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
return ;
}
```
注释中已经详细说明了每一步的作用,希望对您有帮助。