随机数生成与排序

发布时间 2023-10-22 12:06:33作者: 学弟1

随机数生成是计算机领域当中十分常见的功能,下面展示随机数生成的方法以及生成之后对随机数进行排序,这里使用的是快速排序,快速排序不懂的同学,可以参考我的另外一博客链接,这里不做讲解:

https://www.cnblogs.com/caizhou520/p/14542847.html

随机数生成以及快速排序的代码如下所示:

 1 # python3
 2 import random
 3 
 4 # 函数功能:生成ranges范围内的nums个整数
 5 def random_int(ranges=[0,100],num=1):  
 6     if ranges[0]>ranges[1]:   # 检查生成随机数的范围是否有错
 7         print('取值范围错误')
 8         return []
 9     res = []
10     for i in range(num):
11         res.append(random.randint(ranges[0],ranges[1]+1))
12     return res
13 
14 # 函数功能:生成ranges范围内的nums个小数
15 def random_float(ranges=[0,100],num=1):
16     if ranges[0]>ranges[1]:   # 检查生成随机数的范围是否有错
17         print('取值范围错误')
18         return []  
19     res = []
20     for i in range(num):
21         res.append(random.random()*(ranges[1]-ranges[0])+ranges[0])
22     return res
23 
24 # 函数功能:快速排序
25 def quick_sort(arr): 
26     if len(arr) < 2:
27         return arr
28     # 选取基准,随便选哪个都可以,选中间的便于理解
29     mid_index = len(arr) // 2
30     # 定义基准值左中右三个数列
31     left, mid, right = [], [], []
32     
33     for item in arr: 
34         if item > arr[mid_index]:  # 大于arr[mid_index]的放在右边集合
35             right.append(item)     
36         elif item==arr[mid_index]: # 等于arr[mid_index]的放在中间集合
37             mid.append(item)
38         else:                      # 小于arr[mid_index]的放在左边集合
39             left.append(item)
40     # 使用迭代进行比较
41     return quick_sort(left) + mid + quick_sort(right)
42 
43 
44 if __name__ == '__main__':
45     int_list = random_int([20,60],5)
46     float_list = random_float([20.1,60],5)
47     int_list_sort = quick_sort(int_list)
48     float_list_sort = quick_sort(float_list)
49     # 上面排序后是升序,如果想降序排列,只需加下列命令
50     # int_list_sort = int_list_sort[::-1]
51     print('整数列表排序前:',int_list)
52     print('整数列表排序前:',int_list_sort)
53     print('浮点列表排序前:',float_list)
54     print('浮点列表排序前:',float_list_sort)

随机数生成之后的结果如下所示: