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, 34, 78, 23, 2345, 2345, 12, 1, 3]

insert_sort(array)
for a in array:
print a

时间: 2024-10-12 12:40:05

python 实现插入排序算法_python的相关文章

Python 连连看连接算法_python

功能:为连连看游戏提供连接算法 说明:模块中包含一个Point类,该类是游戏的基本单元"点",该类包含属性:x,y,value. 其中x,y代表了该点的坐标,value代表该点的特征:0代表没有被填充,1-8代表被填充为游戏图案,9代表被填充为墙壁 模块中还包含一个名为points的Point列表,其中保存着整个游戏界面中的每个点 使用模块的时候应首先调用createPoints方法,初始化游戏界面中每个点,然后可通过points访问到每个点,继而初始化界面 模块中核心的方法是link

python 实现归并排序算法_python

理论不多说: 复制代码 代码如下: #!/usr/bin/python import sys def merge(array, q, p, r): left_array = array[q:p+1] right_array = array[p+1:r+1] left_array_num = len(left_array) right_array_num = len(right_array) i, j , k= [0, 0, q] while i < left_array_num and j <

python实现排序算法_python

复制代码 代码如下: def insertion_sort(n):    if len(n) == 1:        return n    b = insertion_sort(n[1:])    m = len(b)    for i in range(m):        if n[0] <= b[i]:            return b[:i]+[n[0]]+b[i:]    return b + [n[0]]l = [1,3,4,2,6,7,9,7,12,11,789,345,

python通过BF算法实现关键词匹配的方法_python

本文实例讲述了python通过BF算法实现关键词匹配的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: #!/usr/bin/python # -*- coding: UTF-8 # filename BF import time """ t="this is a big apple,this is a big apple,this is a big apple,this is a big apple." p="apple&q

python快速查找算法应用实例_python

本文实例讲述了Python快速查找算法的应用,分享给大家供大家参考. 具体实现方法如下: import random def partition(list_object,start,end): random_choice = start #random.choice(range(start,end+1)) #把这里的start改成random()效率会更高些 x = list_object[random_choice] i = start j = end while True: while li

Python中实现的RC4算法_python

闲暇之时,用Python实现了一下RC4算法 编码 UTF-8 class 方式 #/usr/bin/python #coding=utf-8 import sys,os,hashlib,time,base64 class rc4: def __init__(self,public_key = None,ckey_lenth = 16): self.ckey_lenth = ckey_lenth self.public_key = public_key or 'none_public_key'

C 实现的插入排序算法

插入排序算法的原理 有一个很形象的比喻,每次从牌堆里抽一张新牌时,左手一般拿着的是已经排好序的旧牌,有新牌来的时候,会不由自主的从右到左的插入进去.后续的牌按照这个规律下去,最后左手的牌都是排好序了. 现在用程序语言的角度来说明插入排序原理. 从数组的第二位开始loop,这是外loop 开启一个内loop,依次检查外loop当前数组值的左侧,如果比当前数组值大,则左侧值向右移动,直到碰到比当前值小的或者内loop结束,此时把当前值放入 左侧留下的空位. 下面是C 实现的完整代码 #include

c#冒泡、快速、选择和插入排序算法的项目应用

在之前的一篇文章里,我们简单地实现了对一维数组的四种排序算法,但是 在实际的项目中,我们排序的方式可能(几乎是一定)不止仅仅按照数字排序, 我们常常按照合适的需要的排序方式进行排序,比如航班信息可能按时间排序, 商品信息可能按价格排序等等.下面改进之前的那一篇"c#实现冒泡.快 速.选择和插入排序算法"里的代码,实现可以对不同对象(实例中是Car )的按照不同排序类型(实例中是价格和名称)的方式排序.好了,Code is cheap.看代码了: using System; using

JAVA实现插入排序算法

package Utils.Sort; /** *插入排序,要求待排序的数组必须实现Comparable接口 */ public class InsertSort implements SortStrategy { /** *利用插入排序算法对obj进行排序 */ public void sort(Comparable []obj) { if (obj == null) { throw new NullPointerException("The argument can not be null!