彩世界开奖app官网-彩世界平台官方网址(彩票平台)
做最好的网站
来自 计算机编程 2019-12-07 01:26 的文章
当前位置: 彩世界开奖app官网 > 计算机编程 > 正文

python实现快速排序的示例(二分法思想)【彩世界开

完成思路

  将所供给的数字存入一个列表中

  1. 先是,设置将最左侧的分外数设置为基准数,在列表中索引为0
  2. 然后设置多个活动位(用于相比),分别为最左侧和最左侧
  3. 接下来最侧边那位向左移找寻比标准数小的那一人,最侧面那位则从左向右寻觅比基准数大的那一个人
  4. 再后,将找到的两位对应的数字替换,继续推行3,直到五个移动位相遇,把标准为轮流成相遇的那一位
  5. 最终,将列表以规范化数那壹人一分成二切开,左边和左侧部分继续实践上述1-4步,直到未有对比数结束(也正是多少个数),排序达成。

看下图你就知道了:

彩世界开奖app官网 1

你只怕感兴趣的稿子:

  • Python编制程序二分法完毕冒泡算法 迅速排序代码示例

贯彻代码

 1 # coding: utf-8
 2 # 快速排序,利用二分思想实现
 3 
 4 
 5 def quick_sort(list, left, right):
 6     if left > right:
 7         return
 8     temp = list[left]
 9     i = left
10     j = right
11     while i != j:
12         # 先从右向左寻找
13         while list[j] >= temp and i < j:
14             j -= 1
15         # 再从左向右寻找
16         while list[i] <= temp and i < j:
17             i  = 1
18         if i < j:
19             t = list[i]
20             list[i] = list[j]
21             list[j] = t
22     # 基准数替换
23     list[left] = list[i]
24     list[i] = temp
25     # 递归调用
26     quick_sort(list, left, i - 1)
27     quick_sort(list, i   1, right)
28 
29 
30 while True:
31     list = []
32     try:
33         num = int(input('你想比较几个数?n'))
34     except ValueError:
35         continue
36     for k in range(num):
37         a = int(input('请输入第'   str(k 1)   '个数:n'))
38         list.append(a)
39     quick_sort(list, 0, num-1)
40     print('排序结果为:')
41     for l in range(len(list)):
42         print(list[l], end=' ')
43     print()

飞快排序的流年复杂度为:O(NlogN卡塔尔,所以高速排序相比较冒泡排序功用要高得多~

本文介绍了python完结飞快排序的演示(二分法思想卡塔尔国,分享给大家,具体如下:

快速排序比较冒泡排序功能要高得多~

1.第后生可畏,设置将最侧面的不行数设置为基准数,在列表中索引为0
2.然后安装多少个移动位(用于比较),分别为最左边和最左边
3.然后最侧边那位向左移寻找比标准数小的那壹人,最右面那位则从左向右搜索比基准数大的那壹位
4.再后,将找到的两位对应的数字替换,继续奉行3,直到三个运动位相遇,把尺度为轮流来相遇的那一个人
5.结尾,将列表以标准数那壹位一分成二切开,左侧和左边手部分继续实行上述1-4步,直到未有相比较数结束(也正是八个数),排序完毕。

彩世界开奖app官网 2

# coding: utf-8
# 快速排序,利用二分思想实现
def quick_sort(list, left, right):
  if left > right:
    return
  temp = list[left]
  i = left
  j = right
  while i != j:
    # 先从右向左寻找
    while list[j] >= temp and i < j:
      j -= 1
    # 再从左向右寻找
    while list[i] <= temp and i < j:
      i  = 1
    if i < j:
      t = list[i]
      list[i] = list[j]
      list[j] = t
  # 基准数替换
  list[left] = list[i]
  list[i] = temp
  # 递归调用
  quick_sort(list, left, i - 1)
  quick_sort(list, i   1, right)

while True:
  list = []
  try:
    num = int(input('你想比较几个数?n'))
  except ValueError:
    continue
  for k in range(num):
    a = int(input('请输入第'   str(k 1)   '个数:n'))
    list.append(a)
  quick_sort(list, 0, num-1)
  print('排序结果为:')
  for l in range(len(list)):
    print(list[l], end=' ')
  print()

如上正是本文的全体内容,希望对我们的就学抱有助于,也希望大家多多指教脚本之家。

将所急需的数字存入叁个列表中

完毕思路

落到实处代码

看下图你就理解了:

本文由彩世界开奖app官网发布于计算机编程,转载请注明出处:python实现快速排序的示例(二分法思想)【彩世界开

关键词: