Skip to content

【练习】选择排序

项目简介

选择排序

知识模块

  • Python 编程语言

知识点

  • 列表操作
  • 循环嵌套
  • 判断
  • 时间复杂度分析
  • 变量
  • 索引

受众

  • 初级测试开发工程师
  • 初级Python开发工程师

作业要求

编写一个Python程序,实选择速排序。

解题思路

  1. 首先,设置一个变量min_index用于记录当前循环中最小元素的索引。

  2. 外层循环从列表的第一个元素开始,依次遍历到倒数第二个元素。

  3. 内层循环从外层循环的下一个元素开始,依次遍历到最后一个元素。

  4. 在内层循环中,比较当前元素和最小元素,如果当前元素比最小元素小,则更新min_index为当前元素的索引。

  5. 内层循环结束后,将最小元素与外层循环的当前元素交换位置。

  6. 外层循环继续,重复步骤2-5,直到遍历到倒数第二个元素。

  7. 排序完成后,列表中的元素将按照从小到大的顺序排列。

完整代码

def xuanze():
    data = [1,56,6,5,4,89,2]
    length = len(data)
    for i in range(length-1):
        small = data[i]
        for j in range(i+1,length):
            if data[j]<small:
                idx = j
                data[idx],data[i] = data[i],data[idx]
    return data

result = xuanze()
print(result)

代码讲解

  1. 首先,我们定义了一个函数 xuanze(),函数内部创建了一个列表 data 并初始化了一些数据。然后,我们获取了列表的长度,用变量 length 保存。

  2. 接下来,我们使用两层循环实现选择排序的逻辑。外层循环从第一个元素遍历到倒数第二个元素,表示每次选择排序的起始位置。

  3. 内层循环从外层循环的下一个位置开始,依次遍历到列表的最后一个元素。内层循环的作用是找到未排序部分的最小值,并将其与当前起始位置的元素交换位置。

  4. 在内层循环中,我们使用变量 small 来记录当前未排序部分的最小值,并使用变量 idx 来记录最小值的索引位置。

  5. 如果内层循环中遇到比 small 更小的元素,就更新 idx 的值为该元素的索引。

  6. 在内层循环结束后,我们通过交换操作将最小值与当前起始位置的元素交换位置。

  7. 最后,当外层循环结束后,整个列表就会按照从小到大的顺序进行排列。

  8. 代码最后通过调用 xuanze() 函数,将排序后的结果赋值给变量 result,并使用 print 语句输出排序结果。

  9. 运行以上代码,会输出 [1, 2, 4, 5, 6, 56, 89],表示列表 data 已按照从小到大的顺序进行了排序。