python中常用的算法

博客主要介绍了算法中的查找和排序内容。查找部分包含顺序查找、二分查找,二分查找有循环和递归两种实现方式;排序部分提及冒泡排序和选择排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法

查找

  • 顺序查找
> def sequential_Search(item,list): 	
>		i = 0 	
>		while i < len(list): 		
> 			if item == list[i]:
> 				return i 		
> 			i += 1 	
>		return -1
  • 二分查找(折半查找)
    • 循环实现:
def binarch_sarch(item,list):
	 start = 0
	 stop = len(list1)-1
	 while start <= stop:
			 mid = (start+stop)//2
			 if item == list[mid]:
			 	return mid
			 elif item > list[mid]:
				start = mid + 1
			 else:
				stop = mid - 1
	 return -1
  • 递归实现:
def binarch_sarch(start,stop,item,list):
    mid = (start+stop)//2
    if start > stop:
        return -1
    if item == list[mid]:
        return mid
    elif item > list[mid]:
        return binarch_sarch(mid + 1,stop,item,list)
    else:
        return binarch_sarch(start, mid - 1, item, list)
  • 排序
    • 冒泡排序
 def bubble_sort(nums):
        for i in range(len(nums) - 1):  # 这个循环负责设置冒泡排序进行的次数
            for j in range(len(nums) - i - 1):  # j为列表下标
                if nums[j] > nums[j + 1]:
                    nums[j], nums[j + 1] = nums[j + 1], nums[j]
        return nums
  • 选择排序
   def selection_sort(list2):
      for i in range(0, len (list2)-1):
        min = i
        for j in range(i + 1, len(list2)):
          if list2[j] < list2[min]:
            min = j
         list2[i], list2[min] = list2[min], list2[i]  # swap
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值