数据结构与算法
白夜的Alice
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指Offer 2
文章目录第三题第四题第五题第六题 第三题 /* 题目倒是非常的简单,不过对于不同的有要求大致有不同的做法 1. 时间O(1) 空间O(n) 可以使用map或者set,判断map中是否已经存在 */ public int findRepeatNumber(int[] nums) { Set<Integer> dic = new HashSet<>(); for(int num : nums) {原创 2022-03-15 13:37:42 · 196 阅读 · 0 评论 -
排序算法-java实现
一、快速排序 思想:基于分治的思想,是冒泡排序的改进型。首先在数组中选择一个基准点并把基准点放于序列的开头(该基准点的选取可能影响快速排序的效率,关于基准点的选择方法后面再讲解),然后分别从数组的两端扫描数组,设两个指示标志(lo指向起始位置,hi指向末尾),首先从后半部分开始,如果发现有元素比该基准点的值小,就交换lo和hi位置的值,然后从前半部分开始扫秒,发现有元素大于基准点的值,就交换lo和hi位置的值,如此往复循环,直到lo>=hi,然后把基准点的值放到hi这个位置,一次排序就完成了。之后再采原创 2022-02-11 23:08:36 · 457 阅读 · 0 评论 -
数组寻两最大(递归,分治)
代码 原始版本(写的有点繁琐) //分而治之 2n-3 #include<stdio.h> void MAX(int A[],int lo,int hi,int *x1,int *x2) { int max1,max2,f; for(int i=lo;i<hi;i++) if(A[i]<A[i+1]) {*x1=A[i+1]...原创 2019-12-06 16:48:27 · 409 阅读 · 0 评论 -
数据结构与算法(小甲鱼)马踏棋盘
方法: 1.回溯法:碰壁回头 2.哈密尔顿路径: 通过图G的每个结点一次,且仅一次的通路(回路),就是哈密顿通路(回路).含有图中所有顶点的路径称作哈密顿路径。 示意图: 代码: #include<stdio.h> #include<time.h> #define X 8 #define Y 8 int chess[X][Y]; int nextxy(int *x,int...原创 2019-12-05 21:54:27 · 572 阅读 · 2 评论
分享