您的位置:首页 > 编程语言 > Python开发

直接插入排序(python)

2017-07-05 08:54 267 查看
直接插入排序算法就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的个数加1的有序数据
# -*- coding: utf-8 -*-"""Created on Wed Jul  5 08:00:32 2017"""s=[]cnt=0def data_in_func(s,cnt):print('请输入数据:')while True:flag=input('是否输入数据,n不输入,其他输入:')if flag=='n':return s,cntdata=input('input a number:')if data.isdigit():data=int(data)s.append(data)cnt+=1else:print('数据错误请重新输入!!!!!!!!!!')'''def insort(s,cnt):#说明  算法书上的(c语言的),实现直接插入排序,也修改了一点#25 12 36 9#25 12 36 9 12  j=0#25 25 36 9 12 j=-1退出循环#j+1=0  s[0]=s[cnt]  12 25 36 9 12flag_sort=0for i in range(1,cnt):if flag_sort==0:s.append(s[i])flag_sort=1else:s[cnt]=s[i]j=i-1while(s[cnt]>s[j]):s[j+1]=s[j]j-=1if j<0:breaks[j+1]=s[cnt]return s'''def insort(s,cnt):#说明  根据python语法进行修改的for i in range(1,cnt):'''if flag_sort==0:s.append(s[i])flag_sort=1else:s[cnt]=s[i]'''j=i-1while(s[j+1]<s[j]):s[j+1],s[j]=s[j],s[j+1]j-=1if j<0:breakreturn ss,cnt=data_in_func(s,cnt)print(s,cnt)s=insort(s,cnt)print('new=',s)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: