文章标题

来源:互联网 发布:golang flag 用法 编辑:程序博客网 时间:2024/06/06 10:49

python实现的希尔排序算法
只能实现小于等于10个数的排序

# -*- coding: utf-8 -*-"""Created on Fri Jul  7 09:39:41 2017@author: wzqya"""data_list=[]num_cnt=0def data_in_func(data_list,num_cnt):    print('please enter a lot of numbers!!!!!')    while 1:        flag=input('enter a letter judgeing whether break,enter n break,else continue!')        if flag=='n':            return data_list,num_cnt        data=input('enter number:')        if data.isdigit():            data=int(data)            data_list.append(data)            num_cnt+=1def shell_sort(k):    #k为增量,即是每一组的大小    while k>0:        for i in range(k,num_cnt):            j=i-k            if j>=0:                if data_list[j]>=data_list[j+k]:                    data_list[j],data_list[j+k]=data_list[j+k],data_list[j]            print(data_list)                    k=k//2#整除data_list,num_cnt=data_in_func(data_list,num_cnt)print(data_list,num_cnt)shell_sort(5)print(data_list,num_cnt)
原创粉丝点击