算法
算法分析与设计
瑞 新
求职中 • Java全栈养成计划
公众号 • 让我遇见相似的灵魂
回复领取:竞赛 书籍 项目 面试
左手代码,右手吉他,这就是天下:如果有一天我遇见相似的灵魂 那它肯定是步履艰难 不被理解 喜黑怕光的。如果可以的话 让我触摸一下吧 它也一样孤独得太久。 不一样的文艺青年,不一样的程序猿。
展开
-
【算法】归并排序
复杂度此归并数,复杂度与树的高度有关时间nlogn空间n,因为temp[]存合并理解temp[]作用两个有序数组合并原创 2020-08-29 17:49:36 · 752 阅读 · 10 评论 -
【算法】全排列
该死的入参,偏偏重要的时候与我作对import java.math.BigInteger;import java.util.Arrays;import java.util.Scanner;/** * @Author bennyrhys * @Date 2020-08-28 18:57 * 23 4 * 2 3 * 3 2 * 0 */public class T33 { public static void main(String[] args) { .原创 2020-08-28 20:17:18 · 1386 阅读 · 12 评论 -
【算法】动态规划
形成条件最优子问题重叠子问题可以用DP提高BF算法复杂度?重叠子问题,复用经典斐波那契从递归到DP优先选择至下而上的回溯法原创 2020-08-26 12:13:31 · 890 阅读 · 11 评论 -
【算法】快速排序
额外空间法利用额外两个数组存储,数值划分的两部分。再重新放回双指针法定义指针(注意位置为待移动位置)划分区间递归排序import java.lang.Integer;import java.util.HashMap;import java.util.*;import java.lang.*;/** * 注意当选取j分界,则不能选取j当基准值。 * (可以选取i|一半,否则出现死循环) * quickSort(arr, l, j); * quickSort(arr, j+1,原创 2020-08-20 14:03:18 · 2121 阅读 · 14 评论 -
红黑树
文章目录红黑树的特征如下左旋右旋旋转和颜色变换规则红黑树的应用红黑树的特征如下每个结点不是红色就是黑色不可能有连在一起的红色结点根结点都是黑色每个红色结点的两个子结点都是黑色任一结点到其子树中每个叶子节点的路径都有相同数量的黑色结点那么问题来了,如何在删除和插入数据的时候保证以上性质呢,红黑树的策略就是改变颜色和旋转,改变颜色很好理解,那么旋转是什么呢?旋转分为左旋和右旋左旋如...原创 2020-03-20 14:57:12 · 803 阅读 · 0 评论 -
C++算法分析与设计——数组 A[n]中所有元素循环左移 k 个位置
//6. 设计分治算法,实现将数组 A[n]中所有元素循环左移 k 个位置 , 要求时间复杂性为 O(n),空间复杂性为 O(1)。例如,对 abcdefgh循环左移 3 位得到 defghabc。// 采用分治法// 将数组分为 0-k-1 和 k-n-1 两块// 将这两块分别左移// 然后再合并左移#include <iostream>using namespace ...原创 2019-03-30 21:33:39 · 7321 阅读 · 0 评论 -
C++算法分析与设计——求一个数组中的最大元素c++
//设计分治算法求一个数组中的最大元素,并分析时间性能。//简单的分治问题//将数组均衡的分为“前” ,“后”两部分//分别求出这两部分最大值,然后再比较这两个最大值#include<iostream>using namespace std;extern const int n=6;// 声明int main(){int a[n]={0,6,1,2,3,5};// 初...原创 2019-03-30 21:32:40 · 4456 阅读 · 0 评论 -
C算法分析与设计——蛮力法分治法求解最大子段和
实验内容:(1) a[1:n]的最大子段和与a[1:n/2]的最大子段和相同(2) a[1:n]的最大子段和与a[n/2+1:n]的最大子段和相同(3) a[1:n]的最大子段和为a[i]+…+a[j],并且1<=i<=n/2,n/2+1<=j<=n。#include <stdio.h>#include <stdlib.h>/** * ...原创 2019-03-30 21:31:34 · 2433 阅读 · 0 评论 -
C算法分析与设计_用户指定数组,值随机产生,两种算法求最小差的绝对值【并使用计时法和计数法】
法1:暴力#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){ printf("请输入数组内要存放的数字个数:\n"); int number; scanf("%d",&number); int array[number-1]; ...原创 2019-03-30 21:28:59 · 1001 阅读 · 0 评论 -
C算法分析与设计_用户指定数组量并定值,两种算法求最小差的绝对值
利用数组,结合算法。熟练应用两种以上解题方法。实验内容:法1:暴力#include <stdio.h>#include <stdlib.h>int main(){ //输入 printf("数组元素个数:\n"); int sum = 0 , i = 0, j; scanf("%d",&sum); int a...原创 2019-03-30 21:25:38 · 944 阅读 · 0 评论