用Python实现几种排序算法
#coding=utf-8
# 1 快速排序算法
def qksort(list):
if len(list)<=1:
return list
else:
pivot = list[0]
less=[x for x in list[1:] if x<pivot]
greater=[y for y in list[1:] if y>=pivot]
return qksort(less)+[pivot]+qksort(greater)
q=[1,3,8,3,2,6,5,3,5,7]
t=qksort(q)
print (t)
#coding=utf-8
# 2 插入排序算法
def insection_sort(list):
n=len(list)
for index in range(1,n):
j=index-1
value=list[index]
while j>=0:
if value<list[j]:
list[j+1]=list[j]
list[j]=value
else :
break
j=j-1
return list
q=[1,3,8,3,2,6,5,3,5,7]
t=insection_sort(q)
print (t)
#coding=utf-8
# 3 冒泡排序算法
def bubble_sort(list):
n=len(list)
for i in range (n):
for j in range(i+1,n):
if list[j]<list[i]:
temp=list[j]
list[j]=list[i]
list[i]=temp
return list
q=[1,3,8,3,2,6,5,3,5,7]
t=bubble_sort(q)
print (t)
用Python实现几种排序算法的更多相关文章
- 几种排序算法的学习,利用Python和C实现
之前学过的都忘了,也没好好做过总结,现在总结一下. 时间复杂度和空间复杂度的概念: 1.空间复杂度:是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了,简单说就是递归集算 ...
- python 十大经典排序算法
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存.常见的内部排序算法有:插入排序.希尔排序.选 ...
- Python实现的选择排序算法原理与用法实例分析
Python实现的选择排序算法原理与用法实例分析 这篇文章主要介绍了Python实现的选择排序算法,简单描述了选择排序的原理,并结合实例形式分析了Python实现与应用选择排序的具体操作技巧,需要的朋 ...
- 秒杀9种排序算法(JavaScript版)
一:你必须知道的 1> JS原型 2> 排序中的有序区和无序区 3> 二叉树的基本知识 如果你不知道上面三个东西,还是去复习一下吧,否则,看下面的东西有点吃力. 二:封装丑陋的原型方 ...
- PHP的几种排序算法的比较
这里列出了几种PHP的排序算法的时间比较的结果,,希望对大家有所帮助 /* * php 四种排序算法的时间与内置的sort排序比较 * 3000个元素,四种算法的排序所用的时间比较 * 冒泡排序 85 ...
- 学习Java绝对要懂的,Java编程中最常用的几种排序算法!
今天给大家分享一下Java中几种常见的排序算法的Java代码 推荐一下我的Java学习羊君前616,中959,最后444.把数字串联起来! ,群里有免费的学习视频和项目给大家练手.大神有空时也 ...
- C#常用8种排序算法实现以及原理简介
public static class SortExtention { #region 冒泡排序 /* * 已知一组无序数据a[1].a[2].--a[n],需将其按升序排列.首先比较a[1]与a[2 ...
- 排序—时间复杂度为O(n2)的三种排序算法
1 如何评价.分析一个排序算法? 很多语言.数据库都已经封装了关于排序算法的实现代码.所以我们学习排序算法目的更多的不是为了去实现这些代码,而是灵活的应用这些算法和解决更为复杂的问题,所以更重要的是学 ...
- java算法03 - 常用的8种排序算法
Java常用的八种排序算法: 插入排序 - 直接插入排序 每次将待排序的记录按照关键字的大小,插入到前面已经排好序的记录的适当位置.直到全部记录插入完成. 代码实现 /** * 直接插入排序 O(n^ ...
随机推荐
- ubuntu14.04下部署Tsung
我是在Windows 7下装的虚拟机里部署的Tsung,所以,以下均是在虚拟机下的操作: 1.网络问题必须搞定,见我的另外一篇博文 2.erlang的安装包.Tsung的安装包一一备齐.我用的是tsu ...
- Python模块学习---Web
import urlparse url = urlparse.urlparse("http://www.python.org/doc/FAQ.html") print url pr ...
- [转]"git rm" 和 "rm" 的区别
用 git rm 来删除文件,同时还会将这个删除操作记录下来 直观的来讲,git rm 删除过的文件,执行 git commit -m "abc" 提交时, 会自动将删除该文件的操 ...
- IdentityServer Topics(6)- Windows身份验证
在支持的平台上,您可以让IdentityServer使用Windows身份验证(例如,对Active Directory)对用户进行身份验证. 当您使用以下身份托管IdentityServer时,当前 ...
- 记录一下自己爬虎牙LOL主播的爬虫思路
1.明确爬虫目的 爬虫目的需要我们明确的,没有目的的爬虫都是耍流氓!像我这次爬虫目的能不能从网页上爬下来. 2.怎么来爬? a. 先要找到具有唯一性的标签 <li class="gam ...
- poj 1743
Musical Theme Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 24835 Accepted: 8377 De ...
- 我的第二个网页制作:p,hn,br标签的使用
<html> <head> <title>这是我的第二个html代码</title> <body> <!-- <p>Hel ...
- 51Nod 1046 A^B Mod C(日常复习快速幂)
1046 A^B Mod C 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = ...
- Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config解决
出现这个问题往往伴随 HTTP-500错误 报错信息: HTTP Status - Handler processing failed; nested exception is java.lang. ...
- VUE之随笔小总结1
VUE 它是一个构建用户界面的JavaScript框架vue指令: 是带有v-前缀的特殊属性,通过属性来操作元素 v-text:在元素当中插入文本 eg:属性值会覆盖自己插入的值 //插入一段文本&l ...