
排序专题
aaaqqq1234
这个作者很懒,什么都没留下…
展开
-
堆排序
def heapify(arr, n, i): largest = i l = 2 * i + 1 # left = 2*i + 1 r = 2 * i + 2 # right = 2*i + 2 if l < n and arr[i] < arr[l]: largest = l if r < n and arr[largest] < arr[r]: largest = r if largest原创 2020-09-15 11:34:31 · 73 阅读 · 0 评论 -
链表排序
# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def sortList(self, head: ListNode) -> ListNode: if head is None: return head # 分成三个链表,分别是比轴心数小,相等,大的数组成的链表原创 2020-09-14 22:35:23 · 84 阅读 · 0 评论 -
供暖设备
题目给定两个数组,一个是房屋的位置,另一个是供暖设备的位置,输出供暖设备的最小半径,要求所有房屋都要被供暖。思路对于每一个房子,我们要找到其最左边的供暖器和最右边的供暖器,取距离最小值,对所有房子的最小距离取最大值,即为供暖器的最小半径。第一段代码求的每个房子对于供暖器的位置应该插入的index,第二段代码求距离每个房子左右供暖器的距离。代码def insert_index(list,target): if len(list) == 0: return 0 left,right原创 2020-07-10 23:04:42 · 132 阅读 · 0 评论 -
快速排序
题目快速排序思路两个指针,i 和 j,一个pivot,pivot指向第一个元素,为基数,若i大于基数且j小于基数,则互换,否则i++,j–,最后pivot和j互换,然后以pivot分界,得到左边都是小于pivot的数组,右边都是大于pivot的数组,在递归。代码def quick_sort(list): if len(list) <= 1: return list pivot = list[0] i = 1 j = len(list)-1 while i <原创 2020-07-09 17:59:02 · 98 阅读 · 0 评论 -
计数排序(桶排)
题目桶排序思路萝卜找坑。先找出最大数和最小数然后创建一组‘桶’然后遍历数组,把每个元素放到对应的桶上,并计数最后读出桶的序号就是排序结果代码def count_sort(list): max,min = list[0],list[0] for i in range(len(list)): if max < list[i]: max = list[i] if min > list[i]: min = list[i] count_原创 2020-07-08 22:03:48 · 135 阅读 · 0 评论 -
插入排序
插入排序思路从第一个数字开始,依次与前面的数字比较大小,若满足条件则交换,下一次从第i个开始。去一个index,记录每论开始的位置代码def insert_sort(list): for sorted_index in range(len(list)): un_sort_index = sorted_index while un_sort_index>0 and list[un_sort_index] > list[un_sort_index-1]: li原创 2020-07-08 21:44:17 · 113 阅读 · 0 评论 -
冒泡排序
题目冒泡排序思路第一个循环控制排序的轮数,第二个循环控制每一论比较的次数def bubble_sort(list): for i in range(0,len(list)): for j in range(0,len(list)-i-1): if list[j] > list[j+1]: list[j] ,list[j+1] = list[j+1], list[j] return list...原创 2020-07-08 21:14:17 · 80 阅读 · 0 评论 -
二分查找
题目用二分查找的方法,查询字符。思路对一个排好序的数组,每次从中间为界查找。代码def bi_search(list,target): left,right = 0,len(list)-1 while left <= right: aid = left + (right - left)//2 if list[aid] == target: return list[aid] elif list[aid] <= target: lef原创 2020-07-08 20:57:57 · 136 阅读 · 0 评论