用随机函数生成50个范围在[1,999]的随机整数,把这50个整数保存到列表。编写程序,对这50个数从小到大进行排序,并按每行10个输出(要求数据的个位对齐)

问题遇到的现象和发生背景

用随机函数生成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()

img

望采纳,谢谢!

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=' ')
    

img


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")