摘要: # encoding=utf-8 def binary_search(alist, item): """二分查找 非递归方式""" n = len(alist) start = 0 end = n-1 while start alist[mid]: start = mid + 1 return False de... 阅读全文
posted @ 2017-09-17 00:24 晴空半岛 阅读(990) 评论(0) 推荐(0) 编辑
摘要: # encoding=utf-8 def merge_sort(alist): """归并排序""" n = len(alist) if n == 1: return alist mid = n // 2 # 对分割的左半部分进行归并排序 left_sorted_li = merge_sort(alist[:mid]) ... 阅读全文
posted @ 2017-09-16 15:39 晴空半岛 阅读(333) 评论(0) 推荐(0) 编辑
摘要: # encoding=utf-8 def quick_sort(alist, start, end): """快速排序""" if start >= end: return mid = alist[start] left = start right = end while left = mid: ri... 阅读全文
posted @ 2017-09-16 13:55 晴空半岛 阅读(247) 评论(0) 推荐(0) 编辑
摘要: # encoding=utf-8 def shell_sort(alist): """希尔排序""" n = len(alist) gap = n // 2 while gap >= 1: for j in range(gap, n): i = j while (i-gap) >= 0: ... 阅读全文
posted @ 2017-09-16 12:20 晴空半岛 阅读(235) 评论(0) 推荐(0) 编辑
摘要: # encoding=utf-8 def insert_sort(alist): """插入排序""" n = len(alist) for j in range(1, n): # 控制将拿到的元素放在前面有序序列正确位置的过程 for i in range(j, 0, -1): # 如果比前面的元素小,则往前移... 阅读全文
posted @ 2017-09-15 18:40 晴空半岛 阅读(287) 评论(0) 推荐(0) 编辑
摘要: # encoding=utf-8 def select_sort(alist): """选择排序""" n = len(alist) for j in range(0, n-1): # 设置最小元素下标 min_index = j # 寻找最小元素的过程 for i in range(j+1, n): ... 阅读全文
posted @ 2017-09-15 18:10 晴空半岛 阅读(202) 评论(0) 推荐(0) 编辑
摘要: # encoding=utf-8 def bubble_sort(alist): """冒泡排序""" n = len(alist) for j in range(n-1): flag = True for i in range(n-1-j): if alist[i] > alist[i+1]: ... 阅读全文
posted @ 2017-09-15 16:52 晴空半岛 阅读(202) 评论(0) 推荐(0) 编辑
摘要: # encoding=utf-8 class DoubleQueue(object): """双端队列""" def __init__(self): self.__items = [] def is_empty(self): """判空""" return self.__items == [] def add_... 阅读全文
posted @ 2017-09-15 16:12 晴空半岛 阅读(397) 评论(0) 推荐(0) 编辑
摘要: #encoding=utf-8 class Queue(object): """队列""" def __init__(self): self.__items = [] def enqueue(self, item): """进队列""" self.__items.insert(0, item) def deq... 阅读全文
posted @ 2017-09-15 16:03 晴空半岛 阅读(209) 评论(0) 推荐(0) 编辑
摘要: # encoding=utf-8 class Stack(object): """栈""" def __init__(self): """使用顺序表,即列表实现数据的存放""" self.__item = [] def push(self, item): """ti添加一个新的元素到栈顶""" """对于... 阅读全文
posted @ 2017-09-15 15:54 晴空半岛 阅读(273) 评论(0) 推荐(0) 编辑