
算法设计与分析作业
文章平均质量分 81
会划水才能到达彼岸
ACM-ICPC 现役(铜牌) 目前:Codeforces Rating: 2172
展开
-
《算法设计与分析》 实验4
用二分的思想可以找出这个分界点。假设我们想二分出来红色(不满足条件的范围)这边的分界点:找一个中间值mid :l+r >> 1写一个函数check()判断时mid时在满足条件(绿色)范围内,还是在不满足条件(红色)范围内。(注意:这里为什么是 l+r+1 )For example:如果 l = r - 1 (即左右边界只相差1) ,假设为l+r >> 1 (向下取整)假设if(check(mid)) 判断为true (此时mid = l + r >> 1 .原创 2021-09-26 17:31:09 · 735 阅读 · 0 评论 -
《算法设计与分析》 实验3
《算法设计与分析》 实验3全排列问题合并排序(归并排序)全排列问题DFS的路线图:我们不需要存这个树,每次深搜走到底就是一条路线。回溯的过程中需要注意:恢复原样。flag[i] = false;import java.util.Scanner;public class Main { static int[] path;//保存路径 static boolean[] flag;//打标记 //u代表层数,u == n的时候就是叶节点 public static原创 2021-09-21 15:55:01 · 434 阅读 · 2 评论 -
《算法设计与分析》 实验2
《算法设计与分析》 实验2全排列问题合并排序(归并排序)全排列问题DFS的路线图:我们不需要存这个树,每次深搜走到底就是一条路线。回溯的过程中需要注意:恢复原样。flag[i] = false;合并排序(归并排序)归并排序 —— 分治思想确定分界点:mid == l+r >> 1递归排序 ( left —— right)归并:把两个有序的数组合并成一个有序的数组(合二为一)(⭐)双指针算法:首先 a[n] 的最小值和 b[n] 的最小值进行比较,将两者的最小值原创 2021-09-08 22:10:44 · 3566 阅读 · 0 评论 -
《算法设计与分析》 实验1
《算法设计与分析》 实验作业11. 冒泡排序2. 选择排序3. 插入排序4. 堆排序5. 百钱百鸡问题1. 冒泡排序比较相邻的元素,前一个比后一个大(或者前一个比后一个小)调换位置public static void bubbleSort(int a[]) { int n = a.length; for (int i = n - 1; i > 0; i--) { for (int j = 1; j <= i; j++) { if (a[j]原创 2021-09-03 20:08:40 · 1545 阅读 · 1 评论