- 二分查找算法
- 排序算法

文章插图
import randomdef bubble_sort(l):for i in range(len(l)-1):
exchange = Falsefor x in range(len(l)-i-1):if l[x] > l[x+1]:l[x], l[x+1] = l[x+1],l[x]
exchange = True
if not exchange:
return
l = [random.randint(1,10) for i in range(10)]s = bubble_sort(l)print(l)个人总结:比较 , i比较几次 , (索引0-9 , 长度是十个所以减一 , 不然多循环一次) , 减去比较完的次数 , 在减一 , 比较大于正序 , 调换 , 小于反序 。定义一个bool,如果走了调换位置 , 就设置为True,没有走的话 , 就证明已经排序完成了 , 就直接返回 。
2.选择排序
def select_sort(l):for i in range(len(l)-1):min = ifor x in range(i,len(l)):if l[x] < l[min]:min = x
l[i],l[min] = l[min],l[i]l = [random.randint(1,10) for i in range(10)]select_sort(l)print(l)循环一个然后和后面的值循环比较 , 比我小 , 换你来当最小的 , 换位 , 大 , 直接换 。
3.插入排序
def insert_sort(l):for i in range(1,len(l)):tmp = l[i]j = i-1 #后面的值while j >=0 and l[j] > tmp:l[j+1] = l[j]#把j的位置向前面移动一位j -= 1#和后面的继续比较l[j+1] = tmp#循环结束条件不成立 , 索引负数 , 比j大的直接插l = [1,6,5,8,9,7,3,4,2]insert_sort(l)print(l)
#从第一个值开始比较 , 第0个是比较对象 快排
def partition(l,left,right):tmp = l[left]while left < right:while left < right and l[right] > tmp :right -=1l[left] = l[right]while left < right and l[left] < tmp :left += 1l[right] = l[left]l[left] = tmpreturn leftdef quick_sort(l,left,right):if left < right:mid = partition(l,left,right)#递归quick_sort(l,left,mid-1)#左边在重新快排quick_sort(l,mid+1,right) #右边在重新快排l = [6, 3, 4, 8, 5, 2, 9, 1,17,7,10,11]quick_sort(l,0,len(l)-1)print(l)【python 算法 一】循环左边之和右边的值 , 拿第一个值 , 和最右边的值比较比tmp大向左边就继续找 , 比tmp小就把它换到左边 , 左边的相反操作 , 最后把tmp放到中间的位置 , 然后把tmp返回 。
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
