Python 冒泡,选择,插入排序使用实例
最近学习了python基础,写一下3大排序练练手:
'''
Created on 2013-8-23
@author: codegeek
'''
//冒泡排序
def bubble_sort(seq):
for i in range(len(seq)):
for j in range(i,len(seq)):
if seq[j] < seq[i]:
tmp = seq[j]
seq[j] = seq[i]
seq[i] = tmp
//选择排序
def selection_sort(seq):
for i in range(len(seq)):
position = i
for j in range(i,len(seq)):
if seq[position] > seq[j]:
position = j
if position != i:
tmp = seq[position]
seq[position] = seq[i]
seq[i] = tmp
//插入排序
def insertion_sort(seq):
if len(seq) > 1:
for i in range(1,len(seq)):
while i > 0 and seq[i] < seq[i-1]:
tmp = seq[i]
seq[i] = seq[i-1]
seq[i-1] = tmp
i = i - 1
//
if __name__ == "__main__":
print "--------bubble_sort-------------"
seq = [22,1,33,4,7,6,8,9,11]
bubble_sort(seq)
print seq
print "--------selection_sort-------------"
seq = [88,44,33,4,7,6,8,9,11]
selection_sort(seq)
print seq
print "--------insertion_sort-------------"
seq = [777,44,33,4,7,6,1111,100,11]
insertion_sort(seq)
print seq
以上就是3则Python中冒泡,选择,插入排序的代码及使用方法了,希望小伙伴们能够喜欢。
相关推荐
-
python 实现插入排序算法
复制代码 代码如下: #!/usr/bin/python def insert_sort(array): for i in range(1, len(array)): key = array[i] j = i - 1 while j >= 0 and key < array[j]: array[j + 1] = array[j] j-=1 array[j + 1] = key if __name__ == "__main__": array = [2, 4, 32, 64,
-
python插入排序算法实例分析
本文实例讲述了python插入排序算法.分享给大家供大家参考.具体如下: def insertsort(array): for removed_index in range(1, len(array)): removed_value = array[removed_index] insert_index = removed_index while insert_index > 0 and array[insert_index - 1] > removed_value: array[insert
-
Python中使用插入排序算法的简单分析与代码示例
问题描述 将一组随机排列的数字重新按照从小到大的顺序排列. 插入算法 每次从数组中取一个数字,与现有数字比较并插入适当位置. 如此重复,每次均可以保持现有数字按照顺序排列,直到数字取完,即排序成功. 这很像打牌时的抓牌情况, 第一个条件:保持手上的牌的顺序是正确的 第二个条件:每次抓到新的牌均按照顺序插入手上的牌中间. 保证这两条不变,那么无论抓了几张牌,最后手上的牌都是依照顺序排列的. Python 实现: def insertion_sort(n): if len(n) == 1: retu
-
Python实现快速排序和插入排序算法及自定义排序的示例
一.快速排序 快速排序(Quicksort)是对冒泡排序的一种改进.由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列. 快速排序,递归实现 def quick_sort(num_list): """ 快速排序 """ if num_li
-
python插入排序算法的实现代码
1.算法:设有一组关键字{ K 1 , K 2 ,-, K n }:排序开始就认为 K 1 是一个有序序列:让 K 2 插入上述表长为 1 的有序序列,使之成为一个表长为 2 的有序序列:然后让 K 3 插入上述表长为 2 的有序序列,使之成为一个表长为 3 的有序序列:依次类推,最后让 K n 插入上述表长为 n-1 的有序序列,得一个表长为 n 的有序序列. 2.python插入排序代码 复制代码 代码如下: def insertion_sort(list2): for i in ra
-
Python实现冒泡,插入,选择排序简单实例
本文所述的Python实现冒泡,插入,选择排序简单实例比较适合Python初学者从基础开始学习数据结构和算法,示例简单易懂,具体代码如下: # -*- coding: cp936 -*- #python插入排序 def insertSort(a): for i in range(len(a)-1): #print a,i for j in range(i+1,len(a)): if a[i]>a[j]: temp = a[i] a[i] = a[j] a[j] = temp return a #
-
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
本文实例讲述了Python实现的插入排序,冒泡排序,快速排序,选择排序算法.分享给大家供大家参考,具体如下: #!/usr/bin/python # coding:utf-8 #直接插入排序 def insert_sort(list): for i in range(len(list)): Key = list [i] #待插入元素 j = i - 1 while(Key < list[j] and j >= 0): list[j+1] = list[j] #后移元素 list[j] = Ke
-
详解Python排序算法的实现(冒泡,选择,插入,快速)
目录 1. 前言 2. 冒泡排序算法 2.1 摆擂台法 2.2 相邻两个数字相比较 3. 选择排序算法 4. 插入排序 5. 快速排序 6. 总结 1. 前言 所谓排序,就是把一个数据群体按个体数据的特征按从大到小或从小到大的顺序存放. 排序在应用开发中很常见,如对商品按价格.人气.购买数量……显示. 初学编程者,刚开始接触的第一个稍微有点难理解的算法应该是排序算法中的冒泡算法. 我初学时,“脑思维”差点绕在 2 个循环结构的世界里出不来了.当时,老师要求我们死记冒泡的口诀,虽然有点搞笑,但是当
-
关于Python排序问题(冒泡/选择/插入)
前言: 学过C语言肯定接触过排序问题,我们最常用的也就是冒泡排序.选择排序.插入排序……等等,同样在Python中也有排序问题,这里我也会讲解Python中冒泡排序.选择排序和插入排序的写法和思维,上正文! (这里我是以列表作为一个排序对象) 1.冒泡排序 冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.
-
Python实现的插入排序算法原理与用法实例分析
本文实例讲述了Python实现的插入排序算法原理与用法.分享给大家供大家参考,具体如下: 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的.个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2).是稳定的排序方法 插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素).在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中. 插
-
基于python if 判断选择结构的实例详解
代码执行结构为顺序结构.选择结构.循环结构. python判断选择结构[if] if 判断条件 #进行判断条件满足之后执行下方语句 执行语句 elif 判断条件 #在不满足上面所有条件基础上进行条件筛选匹配之后执行下方语句 执行语句 else #再不满足上面所有的添加下执行下方语句 执行语句 下面举一个简单的例子,看兜里有多少钱来决定吃什么饭. douliqian=2 if douliqian>200: print("小龙虾走起!!0.0") elif douliqian>
-
python简单实现插入排序实例代码
Python中会遇到很多关于排序的问题,今天小编就带给大家实现插入排序的方法.在Python中插入排序的基本原理类似于摸牌,将摸起来的牌插入到合适位置.具体实现请看本文. 基本原理 类似于摸牌,将摸起来的牌插入到合适位置. 代码: # -*- coding: utf-8 -*- ''' 插入排序: 类似于摸牌,从牌堆中摸一张牌,和手中现有手牌比较.若大则放右边,小放左边. '' def insert_sort(input_list): if len(input_list)<=1: return
-
Python中选择结构实例讲解
1.选择结构通过判断条件是否成立来决定分支的执行. 2.选择结构形式:单分支.双分支.多分支. 3.多分支结构,几个分支之间有逻辑关系,不能随意颠倒顺序. 实例 ''' 单分支选择结构 if 条件表达式: 语句/语句块 ''' if 3+2==5: print("单分支选择结构") #true ''' 双分支选择结构 if 条件表达式: 语句/语句块 else 语句/语句块 ''' a = 3 if a<2: print('t'+str(a)) #true else: print
-
python中的插入排序的简单用法
现在大家学习python掌握内容了解太多太多,但是最重要的不是掌握了解算法的使用,而是了解算法原理远比使用算法命令更重要,现在大家了解算法应该都不低于5种了吧,比如排序算法.冒泡算法.归并算法等等,那对本期主题插入算法有过了解吗?如果没有了解的小伙伴可以跟着小编一起来了解学习. 插入排序简介: 将列表分为有序区和无序区两个部分,最初有序区只有一个元素,即第一个元素. 然后每次从无序区选择一个元素,插入到有序区中,直到无序区为空. 运行图示: 实现代码: # 选择排序 O(n2) def inse
-
python八大排序算法速度实例对比
这篇文章并不是介绍排序算法原理的,纯粹是想比较一下各种排序算法在真实场景下的运行速度. 算法由 Python 实现,可能会和其他语言有些区别,仅当参考就好. 测试的数据是自动生成的,以数组形式保存到文件中,保证数据源的一致性. 排序算法 直接插入排序 时间复杂度:O(n²) 空间复杂度:O(1) 稳定性:稳定 def insert_sort(array): for i in range(len(array)): for j in range(i): if array[i] < array[j]:
随机推荐
- springboot下配置多数据源的方法
- 详解Java中用于国际化的locale类
- PHP SPL标准库之接口(Interface)详解
- c语言冒泡排序法代码
- Android 文件操作详解及简单实例
- PHP5.4中json_encode中文转码的变化小结
- android开发教程之实现listview下拉刷新和上拉刷新效果
- 用ajax自动加载blogjava和博客园的rss
- Android打开相机和相册实例代码
- 原始的js代码和jquery对比体会
- haproxy+keepalived实现高可用负载均衡(理论篇)
- MySQL中一些优化straight_join技巧
- IIS7/IIS7.5/IIS8网站目录执行权限设置方法(与IIS6不同)
- Java编程学习的几个典型实例详解
- python音频处理用到的操作的示例代码
- Java Web实现session过期后自动跳转到登陆页功能【基于过滤器】
- nodejs搭建本地服务器轻松解决跨域问题
- JS引用传递与值传递的区别与用法分析
- 详解extract-text-webpack-plugin 的使用及安装
- Python读取系统文件夹内所有文件并统计数量的方法