欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

冒泡排序python实现

程序员文章站 2022-05-12 09:53:15
...
开始学习python,格式神马的都是浮云,直接上数据结构的算法。毕竟读代码学习最快

1 接受输入的py代码,以后的算法的输入import这个文件

#!/usr/bin/env python
#coding=utf-8
# stdinInput.py
intsortArrays=[]
def stdinInput():
    sortArray=raw_input("please input num array that you want sort(use , to split every num) :")
    sortArrays=sortArray.split(',')
    for num in sortArrays:
        intnum=-1
        try:
            intnum=int(num)
        except:
            print "input num array error, error element was given an default value -1"
        intsortArrays.append(intnum)

冒泡排序:(本实现是从最后往前冒泡,可以选择是冒大的泡还是小的泡)

#!/usr/bin/env python
#coding=utf-8
#BubbleSort.py
#user can choose sort style: desc(1) or asc(2)
import sys
import stdinInput
def bubblesort(sortarray,style):
    sortarraylen=len(sortarray)
    whileNum=0
    if style==1:
        while whileNum < sortarraylen-1:
            for num in xrange(sortarraylen-1,whileNum,-1):
                if sortarray[num-1]<sortarray[num]:
                    sortarray[num-1],sortarray[num]=sortarray[num],sortarray[num-1]
            whileNum=whileNum+1
    else:
        while whileNum < sortarraylen-1:
            for num in xrange(sortarraylen-1,whileNum,-1):
                if sortarray[num-1]>sortarray[num]:
                    sortarray[num-1],sortarray[num]=sortarray[num],sortarray[num-1]
            whileNum=whileNum+1
if __name__=='__main__':
    style=1
    try:
        style=int(sys.argv[1]) 
    except:
        print "input argv error, use default desc sort"
    stdinInput.stdinInput()
    bubblesort(stdinInput.intsortArrays,style)
    print stdinInput.intsortArrays