Python编程:排序算法之选择排序

简介: Python编程:排序算法之选择排序

选择排序

一趟遍历记录最小的数,放在第一个位置

在一趟遍历记录剩余列表中最小的数,继续放置

代码实现

# -*- coding: utf-8 -*-
# @File    : select_sort_demo.py
# @Date    : 2018-06-11
import random
# 选择排序 O(n^2)
def select_sort(lst):
    count = 0
    for i in range(len(lst)-1):  # 比较次数
        min_loc = i
        for j in range(i+1, len(lst)):
            if lst[min_loc] > lst[j]:
                min_loc= j
            count += 1
        lst[min_loc], lst[i] = lst[i], lst[min_loc]
    print("count: %s"% count)
lst = list(range(10))
random.shuffle(lst)
select_sort(lst)
print(lst)
#count: 45
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
相关文章
|
存储 固态存储 数据库
SSD接口选择指南:PCIe与SATA性能大比拼
【4月更文挑战第21天】
3003 0
|
设计模式 测试技术 编译器
C++项目中打破循环依赖的锁链:实用方法大全(一)
C++项目中打破循环依赖的锁链:实用方法大全
1463 0
|
SQL 关系型数据库 MySQL
go语言中数据库操作
【10月更文挑战第22天】
267 4
|
Java Nacos Spring
nacos2.2.3 怎么动态读取 logback-spring.xml?
nacos2.2.3 怎么动态读取 logback-spring.xml?
|
小程序 数据安全/隐私保护
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
在 `src/http` 目录下创建 `request.ts` 文件,并配置 Taro 的网络请求方法 `Taro.request`,支持多种 HTTP 方法并处理数据加密。
601 0
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
scrollIntoView()定位元素显示导致页面上移解决方法?
scrollIntoView()定位元素显示导致页面上移解决方法?
1178 0
|
安全 API 数据安全/隐私保护
outlook邮箱imap密码怎么写?
Outlook邮箱的IMAP密码是安全的关键,应遵循复杂性(至少8字符,含大小写字母、数字和符号)和避免个人信息的原则。要更改密码,登录账户,进入设置->账户设置->安全性或密码,按提示操作。定期更换,不透露给他人,账户异常时立即更改并联系客服。了解这些,能更好地保护你的邮箱安全。
|
消息中间件 运维 NoSQL
基础架构组件选型及服务化
【10月更文挑战第15天】本文概述了分布式系统中常见的基础架构组件及其选型与服务化的重要性。
|
关系型数据库 MySQL Serverless
函数计算产品使用问题之调用RDS MySQL的步骤是怎样的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
160 1