码迷,mamicode.com
首页 > 编程语言 > 详细

相关简单算法代码(顺序,二分,冒泡,插入,选择等)

时间:2020-04-08 18:50:40      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:rate   opened   false   顺序   while   pre   冒泡排序   选择   click   

顺序查找

技术图片
1 def linear_search(li,val):
2     for i,k in enumerate(li):
3         if k == val:
4             return i
5 
6     else: # for循环完毕后一定会执行else
7         return None
View Code

二分法查找

技术图片
 1 # 二分算法代码
 2 
 3 def  binary_search(list,val):
 4     left = 0
 5     right = len(list)-1
 6     while left<=right:  # 候选区有值
 7         mid = (left + right) // 2
 8         if list[mid] ==val:
 9             return mid
10         elif list[mid] > val:
11             right = mid - 1
12         else:
13             left = mid + 1
14     else:
15         return  None
16 list = [1,2,3,4,4,6,7]
17 print(binary_search(list,8))
View Code


冒泡排序

技术图片
 1 # 冒泡排序
 2 def bubble_sort(li):
 3     for i in range(len(li)-1): # i表示趟数
 4         exchange = False       # 没有移动数字
 5         for j in range(len(li)-i-1):
 6             if li[j] > li[j+1]:
 7                 li[j],li[j+1] = li[j+1],li[j]
 8                 exchange = True
 9         print(li)
10         if not exchange:
11             break
12 
13 
14 
15 li = [1,2,3,4,6,5,8]
16 f = bubble_sort(li)
View Code


插入排序

# 插入排序
def insert_sort(li):
    for i in range (1,len(li)): # i表示拿到的数字索引
        j = i-1 # j 表示有序区最后一个的索引
        tmp = li[i]
        while j>=0 and li[j]>tmp:
            li[j+1] = li[j]
            j -= 1
        li[j+1] = tmp
        print(li)


li = [1,5,6,8,5,2]
print(li)
insert_sort(li)


选择排序

# 选择排序
def select_sort(li):
    for i in range (len(li)-1): # i 表示趟数
        for j in range(i+1,len(li)):
            if li[j]<li[i]: #li[i]表示最小
                li[i],li[j] = li[j],li[i]
        print(li)


li = [2,1,2,5,6]
print(li)
select_sort(li)

 

相关简单算法代码(顺序,二分,冒泡,插入,选择等)

标签:rate   opened   false   顺序   while   pre   冒泡排序   选择   click   

原文地址:https://www.cnblogs.com/huahuawang/p/12661642.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!