写点什么

架构师训练营第 1 期 week8 总结

用户头像
张建亮
关注
发布于: 2020 年 11 月 15 日

1、RAID 独立硬盘冗余存储阵列

RAID0:分别在不同的硬盘存储不同的文件,速度快,但是一个磁盘损坏,数据全部丢失

RAID1:数据存储在一个硬盘,另一个硬盘用来复制,速度慢,一个磁盘损坏,文件可以使用,但是冗余太严重

RAID10:多组硬盘,一半写数据,一半备份,写数据也有多个节点,速度快,也有备份,同理冗余太严重

RAID4:多组硬盘,一个磁盘专门用来存储校验位,这样当其中一个硬盘损坏,可以根据其余硬盘加校验位信息计算出损坏硬盘中的数据,但是只有一个硬盘存储校验位,每次写入时都需要更新校验位,写入数据多时,校验磁盘可能会成为系统瓶颈,存储大小为(n-1),同时只支持一个硬盘损坏的情况,校验位信息是通过多个硬盘取异或的方式生成

RAID5:跟 4 类似,只是校验位以螺旋的形式存储在多个硬盘上,现在用的比较多的方式,综合各方面情况更折中一点

RAID6:跟 5 类似,只是校验位以螺旋的形式存储在多个硬盘上,但是同一个校验位要存储到两个磁盘上,存储大小为(n-2),支持同时两个硬盘损坏的情况

2、动态规划解决背包问题

public class Dtgh {    public static int maxWeight = 80;    public static String[] wpName = {"1","2","3","4","5","6"};//物品名称    public static int[] weightArr = {10,15,20,25,30,35};//每个物品的重量    public static int[] priceArr = {15,25,35,45,55,70};//每个物品的价值    public static int[][] resultJz = new int[6][80/5];//动态规划结果集 每格5kg 80可以画16个格子    /**     * 背包问题,同一个物品可以放一次 递归 有重复计算的问题     * @param  num 剩余可选物品     * @param weight 剩余可放重量     * @return     */    public static int backpack(int num,int weight){        int size = wpName.length;        if(num==0||weight==0){            return 0;        }        int result =0;        if(weight<weightArr[size-num]){            result  = backpack(num-1,weight);            //System.out.println("剩余物品数:"+num+"** 剩余重量:"+weight+"**总价值:"+result);            return result;        }        int val1 = backpack(num-1,weight-weightArr[size-num])+priceArr[size-num];        int val2 = backpack(num-1,weight);        if(val1>=val2){            System.out.println("添加物品名称:"+wpName[size-num]+"** 剩余重量:"+weight+"**总价值:"+result);        }        result = Math.max(val1,val2);
return result; }
public static int backpack(){ int result =0; for(int i=0;i<=wpName.length;i++){ for(int j=0;j<resultJz[0].length;j++){ if(i==0){ resultJz[i][j] = 0; }else if(j==0){ resultJz[i][j] = 0; }else{ if(j*5<weightArr[i-1]){//当前格剩余重量小于物品重量 resultJz[i][j] = resultJz[i-1][j] ; }else{ resultJz[i][j] = Math.max(resultJz[i-1][j],resultJz[i-1][j-(weightArr[i-1]/5)]+priceArr[i-1]); } } System.out.print(resultJz[i][j]+","); } System.out.println(); }
result = resultJz[wpName.length][resultJz[0].length-1]; return result; }
public static void main(String[] args) { //int result = backpack(wpName.length, maxWeight); int result = backpack(); System.out.println(result); }}
复制代码


用户头像

张建亮

关注

还未添加个人签名 2020.07.29 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第 1 期 week8 总结