当前位置:   article > 正文

Python排序算法——用random库产生随机数并用选择、快速、希尔、冒泡、插入排序算法进行排序,将最好的两种算法输出,并且保存至txt文件_随机数排序python

随机数排序python

1.冒泡排序:

基本思路:从第一个元素开始比较相邻的两个元素,如果第一个比第一个大或小,就互换它们的位置,这样先比较完一次,然后抛弃最大或最小的继续比较,直到排序完成。

代码函数实现:

  1. def MP(nums):#冒泡排序
  2. for i in range(len(nums) - 1):
  3. for j in range(len(nums)-i-1):
  4. if nums[j] > nums[j+1]: #如果前面的数小于后面的数则交换二者的值
  5. nums[j], nums[j+1] = nums[j+1], nums[j]
  6. print("冒泡排序结果如下:")
  7. print(nums) #输出排序后的数据

2.插入排序

基本思路:在待排序的元素中,假设前n-1个元素已有序,现将第n个元素插入到前面已经排好的序列中,使得前n个元素有序。按照此法对所有元素进行插入,直到整个序列有序。(算法的时间复杂度较高,比较基础的排序方法)

代码实现:

  1. def insertion_sort(nums): #插入排序
  2. for i in range(1,len(nums)):#for表示循环插入的遍数
  3. #设置当前需要插入的元素
  4. current = nums[i]
  5. #与当前元素比较的比较元素
  6. preindex = i-1
  7. while preindex >=0 and nums[preindex] > current:
  8. #当比较元素大于当前元素则把比较元素后移
  9. nums[preindex+1] = nums[preindex]
  10. #往前选择下一个比较元素
  11. preindex -= 1
  12. #当比较元素小于当前元素 则把当前元素插入在其后
  13. nums[preindex+1] = current
  14. print("插入排序结果如下:")
  15. print(nums) #输出排序后的数据

3.希尔排序

基本思路:先选定一个小于N的整数gap作为第一增量,然后将所有距离为gap的元素分在同一组,并对每一组的元素进行直接插入排序。然后再取一个比第一增量小的整数作为第二增量,重复上述操作。(可以说希尔排序是插入排序的一种升级,可以一次进行多个位置的移动)

代码函数实现:

  1. def shell_sort(nums): #希尔排序
  2. n = len(nums)
  3. gap = n // 2 # 定义一个变量gap,确定分组长度
  4. while gap > 0:
  5. for i in range(gap, n): # 开始插入排序
  6. current = nums[i]
  7. j = i - gap
  8. if j >= 0 and nums[j] > current:
  9. num
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/857187
推荐阅读
相关标签
  

闽ICP备14008679号