随机数生成与排序
随机数生成是计算机领域当中十分常见的功能,下面展示随机数生成的方法以及生成之后对随机数进行排序,这里使用的是快速排序,快速排序不懂的同学,可以参考我的另外一博客链接,这里不做讲解:
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)
随机数生成之后的结果如下所示:
祈福@点亮希望