算法
大不了送外卖
happy to help.
展开
-
排序算法——冒泡排序(C语言实现)
冒泡排序介绍冒泡排序(Bubble Sort),又称为气泡排序。这是一种较简单的排序算法。它会遍历若干次要排序的数组,每次遍历时,它都会从前往后依次比较相邻两个数的大小;如果前者大于后者,则两者位置互换。由此,一次遍历后,最大元素就在数列末尾。采用相同方法再次遍历时,第二大的元素就被排列在最大元素前。重复此操作至整个数组有序为止。冒泡排序代码实现冒泡排序C实现一:void bubble_...原创 2019-07-20 22:30:07 · 6035 阅读 · 0 评论 -
快速排序模板(C语言)
快速排序基本思想:快速排序使用分治的思想。选取一个分界点,通过一趟排序将待排序序列分割成两部分,一部分比分界点值小,一部分比分界点值大。进而递归排序这两部分,最后使得整个序列有序。快速排序步骤:确定分界点。分界点的选取可以是array[left],array[right],array[(left + right) / 2]或在序列中随机选 取一个元素;调整范围;递归处理左右两段序列。...原创 2019-08-03 11:07:00 · 224 阅读 · 0 评论 -
LeetCode19——删除链表的倒数第N个节点(C语言)
LeetCode19.删除链表的倒数第N个节点(C语言)题目:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?简单画图分析:...原创 2019-07-22 23:25:31 · 199 阅读 · 0 评论 -
LeetCode237——删除链表中的节点(C语言)
LeetCode237.删除链表中的节点(C语言)(C语言)题目:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该...原创 2019-07-23 09:43:40 · 284 阅读 · 0 评论 -
二叉树遍历递归实现
二叉树遍历递归实现先序遍历顺序:根左右;中序遍历顺序:左根右;后序遍历顺序:左右根;由三种遍历顺序可看出:先序遍历第一次碰到当前结点进行访问;中序遍历第二次碰到当前结点进行访问;后序遍历第三次碰到当前结点进行访问先序遍历递归实现C++代码void PreOrder(Node *r){ if(!r) return ; cout << r-&g...原创 2019-09-24 22:10:48 · 109 阅读 · 0 评论 -
二叉树遍历非递归实现(借助栈)
二叉树遍历非递归实现(借助栈)先序遍历:第一次碰到当前结点进行访问;中序遍历:第二次碰到当前结点进行访问;后序遍历:第三次碰到当前结点进行访问先序遍历非递归实现思路:使用栈来模拟递归的操作:循环条件:节点不为NULL,且栈不为空。如果当前节点不为空,把节点进栈,并且访问节点(cout),节点指向其左孩子,直至左孩子为空。这时相当于左子树已经遍历完了,我们需要访问右节点,将当前元...原创 2019-09-24 22:11:46 · 1749 阅读 · 0 评论