算法基础
Sonihr
现于南京理工大学自动化学院攻读控制理论与控制工程硕士研究生。
展开
-
可能是你最容易看明白的快速排序(C++实现)
我认为现在CSDN大多关于快速排序的程序都是在扯淡。不是针对某一位,我是说,我看到CSDN的C++快排程序都是扯淡。他们根本没有把重点放在快速排序本身,为什么我这么说?我们往下看。快排的本质思想就是分而治之。举例说明,我们要对3 5 2 1 4进行排序。首先我们选中一个数字当做是pivot,就是支点啦,然后我们把所有比pivot小的都放在左边,比他大的放在右边。我们这里把数字2当做pivot。(1...原创 2018-05-07 23:02:11 · 14608 阅读 · 1 评论 -
剑指Offer算法题笔记(第二期)
反转链表题目输入一个链表,反转链表后,输出新链表的表头。思路把preNode当做是null,将head.next先保存下来,然后将head指向preNode。然后依次前进一格,即head变成nextNode,preNode变成head。值得注意的是,head=null的时候说明已经全部反转完毕,但是头不是head,而是head还没有被复制为null的时候。AC代码/*publ...原创 2019-04-01 14:59:48 · 385 阅读 · 0 评论 -
剑指Offer算法题笔记(第一期)
剑指Offer算法题笔记二维数组的查找题目在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:对每一行进行二分搜索。注意点二分搜索是通过把start和end复制为mid+1和mid-1来实现的。循环条件为start<=en...原创 2019-03-28 17:06:18 · 159 阅读 · 0 评论 -
剑指Offer算法题笔记(第三期,汇总版)
二维数组的查找替换空格用两个栈实现一个队列旋转数组的最小数字整数的整数次方重建二叉树反转链表合并两个排序的链表树的子结构包含min函数的栈栈的压入、弹出序列二叉搜索树的后序遍历序列二叉树中和为某一值的路径复杂链表的幅值二叉搜索树与双向链表字符...原创 2019-04-13 14:10:45 · 330 阅读 · 0 评论 -
堆排序的Java实现
package com.sonihr.NowCoderExam;/*@author 黄大宁Rhinos@date 2019/4/24 - 15:07**/import sun.security.util.Length;import java.util.Arrays;public class HeapSortSolution { private void swap(int[...原创 2019-04-24 16:24:57 · 134 阅读 · 0 评论 -
新编背包九讲(一) - 基础题
新编背包九讲(一)- 基础题01背包问题(只能选一个)DFS解法思路二维动态规划思路一维动态规划思路初始化的细节问题完全背包问题(无限选取)基于01思想的二维动态规划改进迭代公式后的二维动态规划一维动态规划多重背包问题(可选数量有限)基于01思想的二维动态规划新编背包九讲(一)- 基础题01背包问题(只能选一个)参考资料:题目: ...原创 2019-06-05 15:31:53 · 205 阅读 · 0 评论