10 2019 档案

摘要:1、冒泡排序 首先在n个数中,从前到后依次比较相邻的两个数,如果前一个数大于后一个数,则交换位置,这样下来可以将n个数中最大的数移动到最后的位置;然后在前n-1个数中,继续上述操作,将第二大的数移动到倒数第二个位置。这样重复n-1次,就可以得到一个从小到大的序列。冒泡排序可以是稳定的,当设置当两个数 阅读全文
posted @ 2019-10-25 21:56 wtzhang 阅读(249) 评论(0) 推荐(0)
摘要:4、快速排序 快速排序的基本思想是分治,从序列中随机选取一个数,把整个序列中所有比这个数小的放到左半边,把比这个数大的放到右半边,然后再递归的排左半边和右半边。 快排的另一种写法如下,其实两种差不多,但也有些微的区别,这种是将基准数先存于tmp中,等基准数两边的数都排好序了,再将基准数归位。 5、归 阅读全文
posted @ 2019-10-25 21:25 wtzhang 阅读(315) 评论(0) 推荐(0)
摘要:题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 这道题可以用大根堆来做,大根堆的top元素是整个堆里面最大的元素。我们往大根堆里面加元素,如果堆里面的个数大于K了,就把堆顶元素弹出来,所以弹出来的是堆中的最大元素。由于每 阅读全文
posted @ 2019-10-22 17:00 wtzhang 阅读(168) 评论(0) 推荐(0)
摘要:题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解决这道题的关键在于,前序遍历的顺序是先根再左子树再右子 阅读全文
posted @ 2019-10-22 16:55 wtzhang 阅读(130) 评论(0) 推荐(0)
摘要:题目:输入一个链表,反转链表后,输出新链表的表头。 这道题可以画一个链表,反转后的链表其实是将每个箭头的方向翻转过来,再让原来的头节点指向空,即可。怎样实现呢? 我们可以通过两个指针来实现,第一个指针a指向头节点,第二个指针b指向a的下一个节点,然后翻转箭头的实现就是让b指向a,也就是b的下一个节点 阅读全文
posted @ 2019-10-11 20:32 wtzhang 阅读(170) 评论(0) 推荐(0)