python 排序算法

冒泡排序: 

 1 #coding:utf-8
 2 '''
 3 比较相邻的元素,每一趟交换后,最后的元素是最大的。
 4 第一次比较n-1次,第二次比较n-2次。。。第n-1次比较1次
 5 进行n-1次冒泡次数
 6 最优时间复杂度O(n),最坏时间复杂度O(n^2)
 7 '''
 8 
 9 def bubble_sort(b_list):
10     n = len(b_list)
11     for j in range(0, n-1):
12         count = 0
13         for i in range(0, n-1-j):
14             if b_list[i] > b_list[i+1]:
15                 count += 1
16                 t = b_list[i+1]
17                 b_list[i+1] = b_list[i]
18                 b_list[i] = t
19         if count == 0:
20             break

 



简单选择排序

 1 #coding:utf-8
 2 '''
 3 找到最小的放到最前面,接着从剩余的继续找最小的,放到第二个。
 4 一共找n-1次,最优O(n^2),最坏O(n^2),不稳定
 5 '''
 6 
 7 def select_sort(s_list):
 8     n = len(s_list)
 9     for j in range(0, n-1):
10         min_v = j
11         for i in range(j+1, n):
12             if s_list[i] < s_list[min_v]:
13                 min_v = i
14         t = s_list[j]
15         s_list[j] = s_list[min_v]
16         s_list[min_v] = t

 




插入排序

 1 #coding:utf-8
 2 '''
 3 从第二个开始 和前面的有序序列比较,比较大小插进去
 4 最优O(n),最坏O(n^2)
 5 '''
 6 
 7 def insert_sort(i_list):
 8     n = len(i_list)
 9     for j in range(1, n):
10         i = j
11         while i > 0:
12             if i_list[i] < i_list[i-1]:
13                 t = i_list[i]
14                 i_list[i] = i_list[i-1]
15                 i_list[i-1] = t
16                 i = i - 1
17             else:
18                 break

 

快速排序

 1 #coding:utf-8
 2 '''
 3 取第一个数为比较值
 4 一个指针左l,一个指针右r,从右边开始
 5 O(nlogn)
 6 '''
 7 
 8 def quick_sort(q_list, left, right):
 9     if left >= right:
10         return
11     low = left
12     high = right
13     mid_value = q_list[left]
14     while low < high:
15         while low < high and q_list[high] >= mid_value:
16             high -= 1
17         q_list[low] = q_list[high]
18         while low < high and q_list[low] < mid_value:
19             low += 1
20         q_list[high] = q_list[low]
21 
22     q_list[low] = mid_value
23     quick_sort(q_list, left, low - 1)
24     quick_sort(q_list, low + 1, right)

 希尔排序

 1 #coding:utf-8
 2 '''
 3 O(nlogn)
 4 '''
 5 
 6 def shell_sort(s_list):
 7     n= len(s_list)
 8     gap = n // 2
 9     while gap > 0:
10         for j in range(gap, n):
11             i = j
12             while i > gap - 1:
13                 if s_list[i] < s_list[i-gap]:
14                     s_list[i-gap],s_list[i] = s_list[i],s_list[i-gap]
15                     i -= gap
16                 else:
17                     break
18         gap = gap // 2

 

转载于:https://www.cnblogs.com/dreamhai/p/10392793.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

奖励 CSDN 社区的领军人物

设计动机 领军人物榜单在这里&#xff1a;https://blog.csdn.net/rank/list/role CSDN 是中国 IT 人士学习、成长、成功的平台&#xff0c; 这个平台有很多博主&#xff0c; 博主写的很多优秀文章获得了粉丝。 那么&#xff0c; 博主获得粉丝之后&#xff0c; 博主以粉丝为荣…

一文教会你何为重绘、回流?

文章目录css图层图层创建的条件重绘(Repaint)回流触发重绘的属性触发回流的属性常见的触发回流的操作优化方案requestAnimationFrame----请求动画帧写在最后学习目标&#xff1a; 了解前端Dom代码、css样式、js逻辑代码到浏览器展现过程了解什么是图层了解重绘与回流了解前端层…

mockjs中的方法(三)

1&#xff09;Mock.mock()&#xff1b; Mock.mock( url, type, template, function(options) ); 其中 url 是定义我们要请求的 url 地址&#xff0c;以便于我们请求的时候 mock 去进行拦截&#xff0c;知道我们要去请求那个值&#xff1b;但是它也是可选的&#xff0c;而且格式…

js函数、js对象的这些点你真的懂吗?

本篇学习目标 ✨了解函数&#xff08;高级&#xff09;原型原型链概念\textcolor{green}{了解函数&#xff08;高级&#xff09;原型原型链概念}了解函数&#xff08;高级&#xff09;原型原型链概念 ✨掌握函数作用域\textcolor{green}{掌握函数作用域}掌握函数作用域 ✨掌握…

前端处理跨域的几种方式

什么是跨域&#xff1f; 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源&#xff0c;这里跨域是广义的。 广义的跨域&#xff1a; 1、资源跳转&#xff1a;A链接、重定向、表单提交 2、资源嵌入&#xff1a; <link>、<script>、<img>、<frame&g…

程序员必知的缓存套图

文章目录1. 线程与进程1.1 进程:1.2. 线程:1.3. 关系2. 浏览器内核模块组成4. 事件循环机制5. 缓存5.1. 缓存理解5.2. 缓存分类5.3. 缓存使用示意图5.4. 缓存中的header参数1. 线程与进程 1.1 进程: 进程是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进…

安装webpack及使用

前言 你是否也是只会运用框架中集成好的Webpack配置呢&#xff1f;你明白每一项的意义么&#xff1f;你懂多少Webpack的个性化配置项呢&#xff1f;本篇文章为你讲解Webpack中的各种配置项参数及作用&#xff01; 文章目录了解Webpack相关开启项目编译打包应用使用webpack配置…

Python基础-os模块 sys模块

sys模块 与操作系统交互的一个接口 文件夹相关 os.makedirs(dirname1/dirname2) 可生成多层递归目录os.removedirs(dirname1) 若目录为空&#xff0c;则删除&#xff0c;并递归到上一级目录&#xff0c;如若也为空&#xff0c;则删除&#xff0c;依此类推os.mkdir(dirnam…

php单例型(singleton pattern)

搞定&#xff0c;吃饭 <?php /* The purpose of singleton pattern is to restrict instantiation of class to a single object. It is implemented by creating a method within the class that creates a new instance of that class if one does not exist. If an obje…

开启关闭各种服务

开启&关闭 Mac版 查找被占用的8080端口&#xff0c;根据pid杀掉进程 查找8080端口 losf -i:8080 根据pid杀掉进程 kill -9 pid iMac:~ acui$ lsof -i:8080 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 62948 ting 93u IPv6 0x6697d6…

助你提高效率的几个Vue指令

前言 很多使用Vue的同学往往最容易忽略的指令&#xff0c;由于在这里考虑到很多初学甚至还没有开始接触Vue的同学呢&#xff0c;在介绍v-clos之前呢就先以大家都熟知的v-model编写小demo v-model 相信大家对v-model并不陌生&#xff0c;简单来讲他就是用于在表单控件以及组建…

掌握Mock摆脱后端同学的束缚

文章目录前言Mock概述mock.js安装Mock规范Mock的使用总结前言 当下采用前后端分离模式开发Web应用已经成为气候&#xff0c;在开发阶段有一个不成文的规定则是 项目开发后端先行 但是作为前端开发工程师的我们&#xff0c;难道在搭建完页面后只能等待后端的接口么&#xff1f;…

户外鞋简介

. 单论品牌&#xff08;主要以登山鞋及徙步鞋为主&#xff09;&#xff1a; 高级品牌&#xff1a;SCARPA、ASOLO、MONTRAIL、ZAMBERLAN、vasque、Lowa、La Sportiva 价格都较高&#xff0c;单价都在千元以上&#xff0c;品质一流&#xff0c;做工精细。 中档品牌&#xff1a;Tr…

Vue技能树上线啦

前言 前端现在越来越多样化&#xff0c;语言众多&#xff0c;大家使用的框架也比较杂&#xff0c;在广泛的前端技术栈面前我唯爱Vue&#xff08;仅代表个人观点勿喷小伙伴们&#xff09;可能很多人觉得我是因为简单&#xff0c;其实并不然&#xff0c;我尝试过很多框架&#x…

ES6的新特性(8)——数组的扩展

数组的扩展 扩展运算符 含义 扩展运算符&#xff08;spread&#xff09;是三个点&#xff08;...&#xff09;。它好比 rest 参数的逆运算&#xff0c;将一个数组转为用逗号分隔的参数序列。 console.log(...[1, 2, 3]) // 1 2 3console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5[…

《SpringMVC从入门到放肆》一、概述

一、SpringMVC概述 ViewServiceDaoDBSpring MVCinterfaceinterfaceMysqlimplsimplsSpringMVC也叫Spring web mvc&#xff0c;属于表现层框架。SpringMVC是Spring框架的一部分&#xff0c;是在Spring3.0后发布的。 二、第一个SpringMVC程序功能描述&#xff1a;  用户提交一个…

手握流量密码,万粉不是梦

前言 可能大家来到CSDN的目的初衷都是不一样的&#xff0c;像我注册CSDN的时候完全是为了解决自己项目中的各种问题&#xff0c;能够有一个为我提供正确答案、正确解决方案的一个平台&#xff0c;简单的了解后我选择CSDN&#xff0c;直到成为现在的创作者也说明我的选择是对的…

秋季学期学习总结

转载于:https://www.cnblogs.com/zx666/p/10408950.html

一文带你了解React框架

前言 由于 React的设计思想极其独特&#xff0c;属于革命性创新&#xff0c;性能出众&#xff0c;代码逻辑却非常简单。所以&#xff0c;越来越多的人开始关注和使用&#xff0c;认为它可能是将来 Web 开发的主流工具。 这个项目本身也越滚越大&#xff0c;从最早的UI引擎变成…

Web前端JQuery面试题(一)

Web前端JQuery面试题&#xff08;一&#xff09; 一&#xff1a;选择器 基本选择器 什么是#id&#xff0c;element&#xff0c;.class&#xff0c;*&#xff0c;selector1, selector2, selectorN&#xff1f;答&#xff1a; 根据给定的id匹配一个元素&#xff0c;用于搜索&…