Day10:选择排序(Selection Sort)

选择排序(Select Sort)

选择排序是重复进行「将数列中最小值,与左边的值对调」,一直保持由小到大的数列。

选择排序法使用线性搜寻(Linear Search),比较次数是

  • 第一次:n-1
  • 第二次:n-2
  • 第n-1次:1
import random

#从1-100中随机读取9个数字
nums = random.sample(range(1,100), 9)
print(nums)

# nums = [60, 50, 44, 82, 55, 77]

# i控制j的上限值
for i in range(8, 0, -1):
    #初始化变数0
    max = 0
    for j in range(1, i+1):
        if nums[j] > nums[max]:
            max = j
    nums[i], nums[max] = nums[max], nums[i]
    print("选择排序的执行结果:",9-i,"次")
    for item in nums:
        print(item,' ',end="")

输出结果:

[35, 77, 79, 23, 18, 92, 81, 90, 12]
选择排序的执行结果: 1 次
35  77  79  23  18  12  81  90  92  
选择排序的执行结果: 2 次
35  77  79  23  18  12  81  90  92  
选择排序的执行结果: 3 次
35  77  79  23  18  12  81  90  92  
选择排序的执行结果: 4 次
35  77  12  23  18  79  81  90  92  
选择排序的执行结果: 5 次
35  18  12  23  77  79  81  90  92  
选择排序的执行结果: 6 次
23  18  12  35  77  79  81  90  92
选择排序的执行结果: 7 次
12  18  23  35  77  79  81  90  92  
选择排序的执行结果: 8 次
12  18  23  35  77  79  81  90  92

什麽是线性搜寻(Linear Search)?

线性搜寻是在阵列中搜寻数据的演算法,从阵列的前端开始依序查询数据。也可以说,用暴力搜寻的方式在寻找数据。由於线性搜寻是从头开始比较,当数据量大或资料在阵列的後方时,会耗费时间。当数据量为n时,执行时间是O(n^2)

def linearSearch(collection, t):
    for e in collection:
        if e == t:
            return True
    return False

<<:  Spring Framework X Kotlin Day 5 JPA

>>:  Day1 自我介绍

Day14:14 - 购物车服务(2) - 前端 - 购物车总商品显示、加入购物车

Përshëndetje,我是Charlie! 在Day13当中我们完成了後端的购物车总商品显示、加...

NIST SP 800-53 R5的摘要

-安全和隐私控制系列(来源:NIST SP 800-53 R5) .安全和隐私控制有效性解决了正确...

Rust-30天的心得

分享一下这30天从无到有的学习下来的一点点心得 先说一下为什麽要学习Rust是因为最近比较红之外还有...

Return到nexttextfield Day24

按下Return键移动到下一个textfield栏位 步骤: 使用textfield的tag 使用U...