编写一个程序,对用户输入的若干整数,采用快速排序的算法,完成从小到大的排列
时间: 2024-03-08 16:50:13 浏览: 31
好的,以下是采用快速排序算法对用户输入的若干整数进行从小到大排列的 Python 代码:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
if __name__ == '__main__':
nums = input('请输入若干整数,以空格分隔:')
nums_list = list(map(int, nums.split()))
sorted_nums = quick_sort(nums_list)
print(sorted_nums)
```
运行程序后,会提示输入若干整数,以空格分隔。输入完毕后,程序会将输入的整数列表传入 `quick_sort` 函数中进行排序,并将排序后的结果输出。
注意:此代码仅作为示例,实际应用中可能需要针对具体情况进行修改和优化。
相关问题
用c++编写一个程序,对用户输入的若干整数,采用快速排序的算法,完成从小到大的排列
好的,以下是采用快速排序算法对用户输入的若干整数进行从小到大排列的 C++ 代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
void quick_sort(vector<int> &arr) {
if (arr.size() <= 1) {
return;
}
int pivot = arr[arr.size() / 2];
vector<int> left, middle, right;
for (int i = 0; i < arr.size(); i++) {
if (arr[i] < pivot) {
left.push_back(arr[i]);
} else if (arr[i] == pivot) {
middle.push_back(arr[i]);
} else {
right.push_back(arr[i]);
}
}
quick_sort(left);
quick_sort(right);
arr.clear();
arr.insert(arr.end(), left.begin(), left.end());
arr.insert(arr.end(), middle.begin(), middle.end());
arr.insert(arr.end(), right.begin(), right.end());
}
int main() {
vector<int> nums;
cout << "请输入若干整数,以空格分隔:" << endl;
int num;
while (cin >> num) {
nums.push_back(num);
}
quick_sort(nums);
cout << "排序后的结果为:" << endl;
for (int i = 0; i < nums.size(); i++) {
cout << nums[i] << " ";
}
cout << endl;
return 0;
}
```
运行程序后,会提示输入若干整数,以空格分隔。输入完毕后,程序会将输入的整数列表传入 `quick_sort` 函数中进行排序,并将排序后的结果输出。
注意:此代码仅作为示例,实际应用中可能需要针对具体情况进行修改和优化。
用c语言编写一个程序,对用户输入的若干整数,采用快速排序算法,完成从小到大的排序
以下是使用快速排序算法对用户输入的整数从小到大进行排序的 C 语言程序:
```c
#include <stdio.h>
void quick_sort(int arr[], int left, int right) {
if (left < right) {
int pivot = arr[left];
int i = left, j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) j--;
if (i < j) arr[i++] = arr[j];
while (i < j && arr[i] <= pivot) i++;
if (i < j) arr[j--] = arr[i];
}
arr[i] = pivot;
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
}
int main() {
int n;
printf("请输入数组长度:");
scanf("%d", &n);
int arr[n];
printf("请输入 %d 个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
quick_sort(arr, 0, n - 1);
printf("排序后的结果为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
该程序首先要求用户输入数组长度和数组中的元素,然后调用 `quick_sort()` 函数进行快速排序,最后输出排序后的结果。其中 `quick_sort()` 函数采用了递归的方法实现快速排序算法。