算法

 

 

 

 

 

 

 

 

 

递归的使用

 

#递归的使用
def func(x):
    if x>0:
        print('抱着',end='')
        func(x-1)
        print('的我',end='')
    else:
        print('我的小鲤鱼',end='')

func(5)

 

 

 

 

 

 重点  LowB三人组

 

 

冒泡算法的代码

def bubble_sort(li):
    for i in range(len(li)-1):
        exchange=False  #定义一个终止条件,意思是当下边的循环中无法再找到右边比左边大的情况下,exchange就是False了,
        for j in range(len(li)-i-1):
            if li[j]>li[j+1]:
                li[j],li[j+1]=li[j+1],li[j]
                exchange=True
        if not exchange:   #完成排序后跳出循环,省去再次无谓的循环的时间等消耗 
            return None
#使用此内容
import random
li=list(i for i in range(100))

random.shuffle(li)
print(li,type(li),len(li))
bubble_sort(li)
print(li)

选择排序

 

代码

def select_sort(li):
    for i in range(len(li) - 1):
        min_loc = i
        for j in range(i+1, len(li)):
            if li[j] < li[min_loc]:
                min_loc = j
        if min_loc != i:
            li[i], li[min_loc] = li[min_loc], li[i]

 

 

 

代码

def insert_sort(li):
    for i in range(1, len(li)):#这句话的功能是从所以为1的位置开始循环,因为第索引为0的位置要保留下来,等待与后边的数据进行对比

        tmp = li[i]
        j = i - 1  #初始为索引为0的数值,。
        while j >= 0 and tmp < li[j]:
            li[j + 1] = li[j]
            j = j - 1
        li[j + 1] = tmp

 

 

 

函数

def quick_sort(data, left, right):
    if left < right:
        mid = partition(data, left, right)
        quick_sort(data, left, mid - 1)
        quick_sort(data, mid + 1, right)

 

partition函数

def partition(data, left, right):
    tmp = data[left]
    while left < right:
        while left < right and data[right] >= tmp:
            right -= 1
        data[left] = data[right]
        while left < right and data[left] <= tmp:
            left += 1
        data[right] = data[left]
        data[left] = tmp
        return left

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

解决方案

 

 

 

 

 

 

  

posted on 2018-04-22 21:21  王大拿  阅读(57)  评论(0)    收藏  举报

导航