基础算法(python)

###插入排序(O(n**2))###
def insert_sort(alist):
	if len(alist) == 1:
		return  alist
	else: 
	    for i in range(len(alist)-1,0,-1):
	        for j in range(i,0,-1):
	            if alist[j] < alist[j-1]:
	                alist[j],alist[j-1] = alist[j-1],alist[j]
	            else:
	                break
	          
	###冒泡排序(O(n**2))###
	def bubble_sort(alist):
   		if len(alist) == 1:
        	return alist
    	else:
        	for i in range(len(alist)-1,0,-1):
            	for j in range(i):
                	if alist[j] > alist[j+1]:
                    	alist[j],alist[j+1] = alist[j+1],alist[j]
        	return alist
	###归并排序(O(nlogn))###
	def merge(left,right):
    	res = []
    	i,j = 0,0
    	while i < len(left) and j < len(right):
        	if left[i] <= right[j]:
            	res.append(left[i])
            	i += 1
        	else:
            	res.append(right[j])
            	j += 1
    	res += left[i:]
    	res += right[j:]
    	return res
def merge_sort(alist):
    if len(alist) == 1:
        return alist
    else:
        mid = round(len(alist)/2)
    left = alist[:mid]
    right = alist[mid:]
    return merge(left,right)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值