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天】
2915 0
|
设计模式 测试技术 编译器
C++项目中打破循环依赖的锁链:实用方法大全(一)
C++项目中打破循环依赖的锁链:实用方法大全
1431 0
|
SQL 关系型数据库 MySQL
go语言中数据库操作
【10月更文挑战第22天】
264 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 方法并处理数据加密。
573 0
Taro@3.x+Vue@3.x+TS开发微信小程序,网络请求封装
scrollIntoView()定位元素显示导致页面上移解决方法?
scrollIntoView()定位元素显示导致页面上移解决方法?
1140 0
|
安全 API 数据安全/隐私保护
outlook邮箱imap密码怎么写?
Outlook邮箱的IMAP密码是安全的关键,应遵循复杂性(至少8字符,含大小写字母、数字和符号)和避免个人信息的原则。要更改密码,登录账户,进入设置->账户设置->安全性或密码,按提示操作。定期更换,不透露给他人,账户异常时立即更改并联系客服。了解这些,能更好地保护你的邮箱安全。
|
存储 缓存 分布式计算
Spark RDD持久化与缓存:提高性能的关键
Spark RDD持久化与缓存:提高性能的关键
|
网络协议 Unix
TCP/IP出现的背景及其历史【图解TCP/IP(笔记八)】
TCP/IP出现的背景及其历史【图解TCP/IP(笔记八)】
1547 0
TCP/IP出现的背景及其历史【图解TCP/IP(笔记八)】

热门文章

最新文章