几个基本的算法

几个基本的算法

1,快排

>>> def querysocrt(array):
	if len(array) < 2:
		return array
	privo = array[0]
	less = [i for i in array[1:] if i <= privo]
	greater = [i for i in array[1:] if i > privo]
	return querysocrt(less) + [privo] + querysocrt(greater)

2,二分查找

>>> def binary_search(array,item):
	low = 0
	high  = len(array) - 1
	while low <= high:
		mid = (low + high) // 2
		guess = array[mid]
		if guess == item:
			return mid
		if guess > item:
			high = mid - 1
		else:
			low = mid + 1
	return None

3,冒泡排序

def bibble_sort(array):
    for i in range(len(array)-1):
        for j in range(len(array)-i-1):
            if array[j] > array[j+1]:
                array[j], array[j+1] = array[j+1], array[i]
	
    
def bibble_sort(array):
    for i in range(len(array)-1):
        exchange = False
        for j in range(len(array)-i-1):
            if array[j] > array[j+1]:
                array[j], array[j+1] = array[j+1], array[i]
                exchange = True
        if exchange:
            return

4,选择排序

# 不好用的选择排序
def select_sort_simple(li):
    li_new = []
    for i in range(len(li)):
    	min_val = min(li)
        li_new.append(min_val)
        li.remove(min_val)
    return li_new
def select_sort_simple(li):
    for i in range(len(li)-1):
        min_loc = i
        for j in range(i,len(li))
            if li[j] < li[min_loc]:
                min_loc = j
        if min_loc != i:
       		 li[i],li[min_loc] = li[mic_loc],li[i]

5,插入排序

def insert_sort(li):
    for i in range(1,len(li))
    	tmp = li[i]
    	j = i - 1
        while j >= 0 and li[j] > tmp:
            li[j+1] = li[j]
            j -= 1
         li[j + 1] = tmp
        
posted @ 2021-11-10 23:07  下个ID见  阅读(99)  评论(0)    收藏  举报