用Python来写5种排序方法
2014-03-13 13:55
363 查看
中C语言的毒太深了,目前在自学Python,一时兴起用Python写了五种排序
1.冒泡排序:
4.归并排序:
5.快速排序:
如有瑕疵还望批评指正。
1.冒泡排序:
def bubble_sort(l): for i in range(len(l)-1,0,-1): for j in range(0,i): if l[j] > l[j+1]: l[j],l[j+1]=l[j+1],l[j]2.选择排序:
def select_sort(l): for i in range(len(l)): index = i for j in range(i,len(l)): if l[j] < l[index]: index = j l[index],l[i] = l[i],l[index]3.插入排序:
def insert_sort(l): for i in range(1,len(l)): tmp = l[i] for j in range(i-1,-1,-1): if tmp > l[j]: j = j+1 break l[j+1] = l[j] l[j]=tmp
4.归并排序:
def merge_sort(l,begin,end): if (begin >= end): return mid = (begin+end)/2 merge_sort(l,begin,mid) merge_sort(l,mid+1,end) merge(l,begin,mid,end) li = range(10) def merge(l,begin,mid,end): for i in range(begin,end+1): li[i] = l[i] i = begin j = mid+1 k = begin while i <= mid and j <= end: if (li[i] > li[j]): l[k] = li[j] k += 1 j += 1 else: l[k] = li[i] k += 1 i += 1 while i <= mid: l[k] = li[i] k += 1 i += 1 while j <= end: l[k] = li[j] k += 1 j += 1
5.快速排序:
def quick_sort(l,left,right): if left >= right: return pos = parition(l,left,right) quick_sort(l,left,pos-1) quick_sort(l,pos+1,right) def parition(l,left,right): j = left for i in range(left+1, right+1): if l[i] > l[left]: j += 1 l[i],l[j] = l[j],l[i] l[left],l[j] = l[j],l[left] return j
如有瑕疵还望批评指正。
相关文章推荐
- python读取和保存图片5种方法对比
- python list列表排序的两种方法及实例讲解
- 选择排序的3种语言实现方法(C java python)
- Python中模拟enum枚举类型的5种方法分享
- Python学习笔记_数据排序方法
- python list排序的两种方法及实例讲解
- Python内置函数sorted()和列表方法sort()排序规则不得不说的事
- python的排序方法
- Python判断列表是否已排序的各种方法及其性能分析
- Python字符串连接的5种方法
- 利用Python代码实现数据可视化的5种方法详解
- 《面试》 几种经典的简单的排序方法(冒泡,选择,插入)python实现
- 5种最简单基础的排序方法
- Python 列表排序方法reverse、sort、sorted详解
- python字符串排序方法
- Python中模拟enum枚举类型的5种方法分享
- Python字典按值排序、包含字典的列表按字典值排序的方法
- Python 列表排序方法reverse、sort、sorted详解
- 在Python中使用sort()方法进行排序的简单教程
- python 对给定可迭代集合统计出现频率,并排序的方法