直接插入排序(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)
相关文章推荐
- Python使用二分插入排序竟然比直接插入排序快99倍!
- 八大排序算法的python实现(一)直接插入排序
- python排序算法-冒泡排序,选择排序,直接插入排序,希尔排序,归并排序,快速排序,堆排序
- 排序算法总结(冒泡排序、直接插入排序、希尔排序)(python实现)
- python算法实践1-直接插入排序
- 排序算法C++ && Python实现---直接插入排序
- 直接插入排序 Python实现
- 直接插入排序 Python实现
- python 实现的 直接插入排序法
- 学Python写算法系列(一) | 直接插入排序
- 直接插入排序法 -- Python实现
- python数据结构之直接插入排序
- 直接插入排序、希尔排序—C—Python
- [排序] 直接插入排序(Python)
- Python排序——直接插入排序
- Python 直接插入排序
- python数据结构之直接插入排序
- Python排序-直接插入排序
- 数据结构-排序: 插入排序(直接插入排序法)
- 直接插入排序的两个算法示例