随笔分类 -  算法

摘要:def binary_search(List, item): # 设置头指针和尾指针 low = 0 height = len(List) - 1 # 当头指针大于尾指针时,查找结束 while low <= height: mid = (low + height) // 2 guess = List[mid] # 猜测的数 if guess == item: return mid # 返回查找的 阅读全文
posted @ 2019-10-17 09:18 我叫郑小白 阅读(158) 评论(0) 推荐(0)
摘要:def selectSort(data): if len(data) == 0: return [] length = len(data) for i in range(length): min_index = i # 默认第 i 个元素是每次的最小值索引 for j in range(i+1, length): ... 阅读全文
posted @ 2019-10-10 17:20 我叫郑小白 阅读(122) 评论(0) 推荐(0)
摘要:def insertSort(data): len_ = len(data) for i in range(1, len_): for j in range(i): if data[i] < data[j]: data.insert(j, data[i]) # 如果碰到比自己小的数,在自己前面插入这... 阅读全文
posted @ 2019-10-09 20:03 我叫郑小白 阅读(107) 评论(0) 推荐(0)
摘要:def quick_sort(data): if len(data) >= 2: mid = data[0] # 选取第一个值为基准值 left, right =[], [] # 定义基准值左右两侧的列表 data.remove(mid) # 原始数据中删除基准值 for num in data: if num >= mid: # 大于基准值的放右边 right.append(num) else: 阅读全文
posted @ 2019-10-08 22:11 我叫郑小白 阅读(128) 评论(0) 推荐(0)
摘要:一、前言 冒泡排序是一种交换排序。 什么是交换排序呢? 答曰:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。 二、算法思想 它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数 阅读全文
posted @ 2019-08-06 21:21 我叫郑小白 阅读(161) 评论(0) 推荐(0)