• python学习08排序算法举例


    ''''''
    '''
    排序算法:前提是所有数按照从小到大的顺序排列。
    1.冒泡算法
    将第一数与第二个数比较大小,如果第一个数比第二个数大,则沉底(交换位置,使大数在小数后面,这个过程类似于大泡沉底的过程)

    '''
    lst1=[33,77,99,55,66,44,22,00,88,11]
    i=0
    t=0
    lst1_len=len(lst1)
    while i<lst1_len:
    j=1
    while j<lst1_len-i:
    if lst1[j-1]>lst1[j]:
    t=lst1[j-1]
    lst1[j-1]=lst1[j]
    lst1[j]=t
    j+=1
    print('第'+str(i)+'次排序的结果为'+str(lst1))
    i+=1
    print(lst1)

    '''
    2.选择法排序
    把第一个数假设为max,依次与第二个数及以后的每个数去比较,如果后面的某个数比max大,就替换到max,一直比到最后一个,再把max给第一个数
    '''
    lst2=[33,77,99,55,66,44,22,00,88,11]
    i=0
    t=0
    for i in range(len(lst2)):
    j=i
    max=lst2[j]
    for j in range(len(lst2)):
    if max<lst2[j]:
    t=lst2[j]
    lst2[j]=max
    max=t
    lst2[i]=max
    print('第' + str(i) + '次排序的结果为' + str(lst2))
    print(lst2)

    '''
    3.二分法查找
    这里介绍一种查找方法:对集合下标通过取中位数的方法获取对应元素值
    但是前提是,列表里的元素要先有序排列好(从小到大或从大到小)
    '''
    lst3=[0, 11, 22, 33, 44, 55, 66, 77, 88, 99]
    low=0
    high=len(lst3)-1
    find_value=12
    flag=False
    index =0
    while low<high:
    middle=int((low+high)/2)
    if lst3[middle]<find_value:
    low=middle+1
    elif lst3[middle]>find_value:
    high=middle-1
    elif lst3[middle]==find_value:
    index=middle
    flag=True
    break
    else:
    flag=False
    break
    if(flag==True):
    print(str(find_value)+"在第"+str(index+1)+"个位置上");
    else:
    print("没找到!")

  • 相关阅读:
    Redmine入门-安装
    【Spring Cloud笔记】 Eureka通过集群实现高可用
    【SpringBoot笔记】SpringBoot整合Druid数据连接池
    【Spring Cloud笔记】 断路器-hystrix
    【Spring Cloud笔记】Eureka注册中心增加权限认证
    Jenkins实现简单的CI功能
    【SpringBoot笔记】SpringBoot如何正确关闭应用
    Activi相关表归纳
    阿里云MySQL远程连接不上问题
    Storm入门-Storm与Spark对比
  • 原文地址:https://www.cnblogs.com/wsxcode/p/12215702.html
Copyright © 2020-2023  润新知