输入n个整数(不超过100),存放到数组a中,按升序或降序排序并输出
时间: 2023-04-16 10:05:10 浏览: 98
可以使用冒泡排序、快速排序等算法对数组a进行排序,具体实现如下:
1. 冒泡排序
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就交换位置。
按升序排序的冒泡排序代码如下:
```python
n = int(input("请输入整数个数:"))
a = []
for i in range(n):
a.append(int(input("请输入第{}个整数:".format(i+1))))
# 冒泡排序
for i in range(n-1):
for j in range(n-i-1):
if a[j] > a[j+1]:
a[j], a[j+1] = a[j+1], a[j]
print("升序排序结果:", a)
```
按降序排序的冒泡排序代码如下:
```python
n = int(input("请输入整数个数:"))
a = []
for i in range(n):
a.append(int(input("请输入第{}个整数:".format(i+1))))
# 冒泡排序
for i in range(n-1):
for j in range(n-i-1):
if a[j] < a[j+1]:
a[j], a[j+1] = a[j+1], a[j]
print("降序排序结果:", a)
```
2. 快速排序
快速排序是一种常用的排序算法,它的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。
按升序排序的快速排序代码如下:
```python
n = int(input("请输入整数个数:"))
a = []
for i in range(n):
a.append(int(input("请输入第{}个整数:".format(i+1))))
# 快速排序
def quick_sort(a, left, right):
if left >= right:
return
i, j = left, right
pivot = a[left]
while i < j:
while i < j and a[j] >= pivot:
j -= 1
a[i] = a[j]
while i < j and a[i] <= pivot:
i += 1
a[j] = a[i]
a[i] = pivot
quick_sort(a, left, i-1)
quick_sort(a, i+1, right)
quick_sort(a, 0, n-1)
print("升序排序结果:", a)
```
按降序排序的快速排序代码如下:
```python
n = int(input("请输入整数个数:"))
a = []
for i in range(n):
a.append(int(input("请输入第{}个整数:".format(i+1))))
# 快速排序
def quick_sort(a, left, right):
if left >= right:
return
i, j = left, right
pivot = a[left]
while i < j:
while i < j and a[j] <= pivot:
j -= 1
a[i] = a[j]
while i < j and a[i] >= pivot:
i += 1
a[j] = a[i]
a[i] = pivot
quick_sort(a, left, i-1)
quick_sort(a, i+1, right)
quick_sort(a, 0, n-1)
print("降序排序结果:", a)
```