python排序算法

1、冒泡排序:

 import math
def BubbleSort(list):
lengthOfList = len(list)
for i in range(0,lengthOfList-1):
for j in xrange(i+1,lengthOfList):
if list[i]>list[j]:
temp = list[i]
list[i] = list[j]
list[j] = temp
bList = [1,12,2,4,51,66,45,25,96,78,55,23]
print bList
BubbleSort(bList)
print bList

2、插入排序:

 import math
def InsertSort(list):
lengthOfList = len(list)
for i in range(1,lengthOfList):
  cur = list[i]
  temp = i
  while i>0 and list[temp - 1]>cur:
    list[temp] = list[temp-1]
    temp = temp -1
    list[temp] = cur
bList = [1,12,2,4,51,66,45,25,96,78,55,23]
print bList
InsertSort(bList)
print bList

3、选择排序:

 import math
def SelectSort(list):
lengthOfList = len(list)
for i in range(0,lengthOfList-1):
  pos = i
  for j in range(i + 1,lengthOfList):
    if list[j]<list[pos]:
      pos = j
  if pos != i:
    temp = list[i]
    list[i] = list[pos]
    list[pos] = temp
bList = [1,12,2,5,51,66,45,25,96,78,55,23]
print bList
SelectSort(bList)
print bList

4、快速排序算法:

 #快速排序的原理是将取出第一个数,将整个数组分为两波,一拨都大于这个数,另一波都小于这个数,
#然后递归用同样的方法处理第一波数字和第二波数字。
import math
def QuickSort(list):
low = 0
high = len(list) - 1
if low < high:
s, i, j = list[low], low, high
while i < j:
while i < j and list[j] >= s:
j = j - 1
if i < j:
list[i] = list[j]
i = i + 1
while i < j and list[i] <= s:
i = i + 1
if i < j:
list[j] = list[i]
j = j - 1
list[i] = s
QuickSort(list, low, i - 1)
QuickSort(list, i + 1, high)
bList = [1,12,2,5,51,66,45,25,96,78,55,23]
print bList
QuickSort(bList,0,11)
print bLis

学习python之练习(三)的更多相关文章

  1. 学习python,第三篇:.pyc是个什么鬼?

    .pyc是个什么鬼? 1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存 ...

  2. 学习python的第三天

    4.28日总结 一.关于python 1.交互式 说一句解释一句 2.命令行式 1.编写文件并且保存 2.打开python解释器,在pyrhon中打开文本,读入内存(python打开的时候,翻译不是瞬 ...

  3. 学习Python的三种境界

    前言 王国维在<人间词话>中将读书分为了三种境界:"古今之成大事业.大学问者,必经过三种之境界:'昨夜西风凋碧树,独上高楼,望尽天涯路'.此第一境也.'衣带渐宽终不悔,为伊消得人 ...

  4. Python 学习日记(第三周)

    知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...

  5. python socket+tcp三次握手四次撒手学习+wireshark抓包

    Python代码: server: #!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:server.py import socket # 导入 socke ...

  6. Python学习 —— 阶段综合练习三

    Python学习 —— 阶段综合练习三 综合之前文件与文件夹操作的学习,做以下实例练习:(建议先不要看代码,自己先试着写:代码仅供参考,有多种实现方法) 1. 目录文件遍历(二层目录结构) 1).  ...

  7. Python学习--Python基础语法

    第一个Python程序 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码. linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗 ...

  8. 学习Python不得不关注和学习的国外大神博客

    注意 : 本文收集于网路 . 由于常常更新 , 有些链接打不开, 请自备梯子 在学习Python过程中,总会遇到各种各样的坑, 虽然Python是一门优美而简单易学的语言 . 但当学习后 , 总想着更 ...

  9. Python3 学习Python流程--试水中

    二.基础语法之后可以搭载服务器练习: 教程 一.1.Python 搭建环境. 初学基本语法 :Python基本语法 2.推荐 IDE :  PyCharm CE 下载 菜鸟教程都是基础语法,可以对py ...

  10. 【转】布同:如何循序渐进学习Python语言

    大家都知道Python语言是一种新兴的编程语言.1989年,Python就由Guido van Rossum发明.Python一直发展态势很好. 原因有几点:1.跨平台性好.Linux.Windows ...

随机推荐

  1. 慕客网laravel学习笔记

    session中set方法使用 Session::set('user.username.age','18')嵌套使用得出$user = ['username'=>['age'=>18]]; ...

  2. [IIS]IIS扫盲(一)

    iis - IIS概念相关 1.IIS(Inter-IC Sound bus)又称I2S,是菲利浦公司提出的串行数字音频总线协议.目前很多音频芯片和MCU都提供了对IIS的支持.IIS总线只处理声音数 ...

  3. (String)151. Reverse Words in a String

    Given an input string, reverse the string word by word. For example,Given s = "the sky is blue& ...

  4. 2.Median of Two Sorted Arrays (两个排序数组的中位数)

    要求:Median of Two Sorted Arrays (求两个排序数组的中位数) 分析:1. 两个数组含有的数字总数为偶数或奇数两种情况.2. 有数组可能为空. 解决方法: 1.排序法 时间复 ...

  5. LoadRunner使用技巧之添加事务

    事务(Transaction)用于模拟用户的一个相对完整的.有意义的业务操作过程,例如登录.查询.交易.转账,这些都可以作为事务,而一般不会把每次HTTP请求作为一个事务. 以刚刚过去的双11淘宝为例 ...

  6. NOIP模拟赛-时间与空间之旅

    题目描述 公元22××年,宇宙中最普遍的交通工具是spaceship.spaceship的出现使得星系之间的联系变得更为紧密,所以spaceship船长也成了最热门的职业之一.当然,要成为一名出色的船 ...

  7. 给JAVA初学者的50个忠告

    摘自: http://wenku.baidu.com/link?url=p5vDKt5bKzUXxG_hAsB9XopHJRROeovOGGh4jnXGZXiUedR-fNOLO7zb6ddENo5U ...

  8. 浅析Linux下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc文件

    转自:http://www.ahlinux.com/shell/20239.html 0x01 /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/e ...

  9. delphi 10 seattle 安卓服务开发(二)

    关于delphi 10 移动服务开发的几张图

  10. maven自动部署到远程tomcat教程

    使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配 ...