刚学python,练练手
Python语言:
001 # -*- coding: utf-8 -*-
002 """
003 Created on Wed Sep 28 16:58:29 2011
004
005 @author: Guo
006 """
007 import time
008 import random
009 import numpy as np
010 import matplotlib
011 import matplotlib.pyplot as plt
012
013 randomList = []
014 maxValue = 2000
015 numberRandom = 2000
016
017 """
018 直接插入排序
019 """
020
021 def insert_Sort(data):
022 for i in range(1, len(data)):
023 temp = data[i] #data[i] is to insert
024 j = i - 1
025 while j >= 0 and temp < data[j]:
026 data[j + 1] = data[j]
027 j = j - 1
028 if j <> i - 1:
029 data[j + 1] = temp #insert temp
030 sortedData = data
031 return sortedData
032 """
033 随机数构造函数
034 """
035
036 def createRandomList():
037 for i in range(numberRandom):
038 randomList.append(random.randint(1,maxValue));
039
040 """
041 冒泡排序
042 """
043
044 def bubblesort(data):
045 sortedData = []
046 for i in range(len(data) - 1, 1, -1):
047 for j in range(0, i):
048 if data[j] > data[j + 1]:
049 data[j], data[j + 1] = data[j + 1], data[j]
050 sortedData = data
051 return sortedData
052
053 """
054 希尔排序
055 """
056
057 def shell_Sort(data, n = None):
058 if n == None:
059 n = len(data) / 2
060 if n % 2 == 0:
061 n = n + 1
062 for i in range(0, n):
063 newdata = data[i:len(data):n]
064 insert_sort(newdata)
065 data[i:len(data):n] = newdata
066 if n <> 1:
067 d = n / 2
068 if d % 2 == 0:
069 d = d + 1
070 shell_Sort(data, d)
071
072 """
073 快速排序
074 """
075 def quickSort(data, low = 0, high = None):
076 if high == None:
077 high = len(data) - 1
078 if low < high:
079 s, i, j = data[low], low, high
080 while i < j:
081 while i < j and data[j] >= s:
082 j = j - 1
083 if i < j:
084 data[i] = data[j]
085 i = i + 1
086 while i < j and data[i] <= s:
087 i = i + 1
088 if i < j:
089 data[j] = data[i]
090 j = j - 1
091 data[i] = s
092 quickSort(data, low, i - 1)
093 quickSort(data, i + 1, high)
094
095 """
096 堆排序
097 """
098
099 def heap_Adjust(data, s, m):
100 if 2 * s > m:
101 return
102 temp = s - 1
103 if data[2*s - 1] > data[temp]:
104 temp = 2 * s - 1
105 if 2 * s <= m - 1 and data[2*s] > data[temp]:
106 temp = 2 * s
107 if temp <> s - 1:
108 data[s - 1], data[temp] = data[temp], data[s - 1]
109 heap_Adjust(data, temp + 1, m)
110 def heap_sort(data):
111 m = len(data) / 2
112 for i in range(m, 0, -1):
113 heap_Adjust(data, i, len(data))
114 data[0], data[-1] = data[-1], data[0]
115 for n in range(len(data) - 1, 1, -1):
116 heap_Adjust(data, 1, n)
117 data[0], data[n - 1] = data[n - 1], data[0]
118
119 ###########---以上是函数定义---###########
120
121 """
122 显示随机数
123 """
124 createRandomList()
125 print "The random numbers are:"
126 print randomList
127
128 """
129 显示冒泡排序所需时间
130 """
131 starttime = time.clock()
132 createRandomList()
133 bubblesort(randomList)
134 print "After the bubblesot, the sequence numbers are:"
135 print bubblesort(randomList)
136 endtime = time.clock()
137 print "The bubblesort time cost is:", (endtime-starttime)
138
139 """
140 显示直接插入排序所需时间
141 """
142 starttime = time.clock()
143 createRandomList()
144 insert_Sort(randomList)
145 endtime = time.clock()
146 print "The insert_Sort time cost is :", (endtime-starttime)
147
148 """
149 显示快速排序所需时间
150 """
151 starttime = time.clock()
152 createRandomList()
153 quickSort(randomList)
154 endtime = time.clock()
155 print "The quickSort time cost is :", (endtime-starttime)
可以运行,哪里有不对的地方,请大家指出来,菜鸟好提高。
分享到:
相关推荐
python-3.8.0-amd64-webinstall.exe
python菜鸟3.0-终于清楚python菜鸟⼊门教程 Python是⼀款功能强⼤的脚本语⾔,具有丰富和强⼤的库,重要的是,它还具有很强的可读性,易⽤易学,⾮常适合编程初学者⼊门。以 下是⼩编为你整理的python菜鸟⼊门教程 ...
菜鸟教程python2 菜鸟教程python2 菜鸟教程python3 菜鸟教程python3 Python2.7 ⼊门指南 Python2.7 ⼊门指南 Python3.6 ⼊门指南 Python3.6 ⼊门指南 廖雪峰Python教程 廖雪峰Python教程 Python100例 Python100例 ...
python学习笔记1——(廖雪峰教程,菜鸟教程)python基础 python学习笔记1——(廖雪峰教程,菜鸟教程) >>> classmates = ['Michael', 'Bob', 'Tracy'] >>> len(classmates) 3 ⽤索引来访问list中每⼀个位置的元素...
目录 contents 第4章pygame基础知识 第5章植物大战僵尸 第1章python菜鸟快乐游戏编程_pygame课程概述 第2章python基础环境搭建 第3章python基础知识 Python菜鸟快乐游戏编程-pygame-课件PPT模板全文共14页,当前为...
到http://www.python.org/下载最新的稳定版本Python。在Windows 平台下, 安装过程和普通的软件没有什么区别,一路下一步就可以了。
runoob菜鸟教程的python3教程,用我自己写的工具下载的,非常好的书箱
菜鸟学易语言笔记(1)-----------学会思考.pdf
一个pythone菜鸟的养成之路,对初学的人有很好的借鉴意义。
python 版本: 3.9.1 windows 64位 exe安装包,官网链接:https://www.python.org/downloads/release/python-391/
下载TX2专用torch包,Cuda版本为10.2,python版本为3.6.9,Jetpack版本为4.6,最后选择安装Pytorch v1.10.0。官网半天下不下来,难顶。
Python 实战-从菜鸟到大牛的进阶之路 - v1.1pdf
python-note 菜鸟学习笔记
0基础学习的源码笔记(非千锋官方,本人学习时参照千锋教程写出的). 源码是在 视窗系统 xp sp3 32位,蟒蛇3.4.4 32位,pycharm社区版2016.3.6 32位环境完成的. 感谢千锋教育的开源教程 千锋教育的开源教育视频(哔哩哔哩...
python-3.8.0-webinstall.exe
Python基础语法-菜鸟教程-函数⽤法:input()和raw_input() 1.input()和raw_input()⽤法 (1).input() 1)⽤法解释 def input(*args, **kwargs): # real signature unknown """ Read a string from standard input....
python菜鸟教程100例-Python基础教程菜鸟教程 Python 基础教程 Python是⼀种解释型、⾯向对象、动态数据类型的⾼级程序设计语⾔。 Python由Guido van Rossum于1989年底发明,第⼀个公开发⾏版发⾏于1991年。 像Perl...
菜鸟教程的python3的pdf版本,内容不是很多,但是把所有的语法点都覆盖到了,如果有需要可以拿去看一看。就是方便打印出来看而已,相比之下也没多什么内容