用随机函数生成50个范围在[1,999]的随机整数,把这50个整数保存到列表。编写程序,对这50个数从小到大进行排序,并按每行10个输出(要求数据的个位对齐)。注意:不能使用sort,sorted,max, min,index函数,在排序的时候原列表不能删除元素,不能增加元素,不能生成新的列表,只能原地排序。方法:先找出全部数据的最小值,把它放在第0个位置,然后在剩下的数据找最小值放在第1个位置,依此类推。不能用其它方法。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: Roc-xb
"""
import random
if __name__ == '__main__':
# 随机函数生成50个范围在[1,999]的随机整数
data = [random.randint(1, 999) for i in range(50)]
print(data)
# 冒泡排序
for i in range(len(data) - 1):
for j in range(len(data) - i - 1):
# 从小到大进行排序
if data[j + 1] < data[j]:
data[j + 1], data[j] = data[j], data[j + 1]
print(data)
# 每行10个输出(要求数据的个位对齐)
for (index, item) in enumerate(data):
print('{:>4}'.format(item), end=' ')
# 换行
if (index + 1) % 10 == 0:
print()
望采纳,谢谢!
import random
def partition(arr, low, high):
i = low #最初的pivot位置
pivot = arr[high] # 取最后一个元素当做pivot
for j in range(low, high):
# 当前元素小于或等于 pivot
if arr[j] <= pivot:
arr[i], arr[j] = arr[j], arr[i]
i = i + 1 #pivot位置前进1步
arr[i], arr[high] = arr[high], arr[i] #将pivot放到正确的位置并返回位置索引i
return i
def quick_sort(arr, low, high):
if low < high:
pi = partition(arr, low, high)
quick_sort(arr, low, pi - 1)
quick_sort(arr, pi + 1, high)
list_1=[]
for i in range(50):#循环50次,则生成一个包含50个元素的列表
list_1.append(random.randint(0,999))#不断往列表中添加新的随机数
quick_sort(list_1, 0, len(list_1) - 1)
for i in range(50):
if (i+1) % 10 == 0:
print('{:>4}'.format(list_1[i]))
else:
print('{:>4}'.format(list_1[i]), end=' ')
import random
a = []
for i in range(50):
a.append(random.randint(1,999))
b = []
while(len(a)>0):
b.append(min(a))
a = a[0:a.index(min(a))]+ a[(a.index(min(a))+1):(len(a))]
for i in range(5):
for j in range(10):
print(b[j+i*10].rjust(4),end = " ")
print("",end = "\n")