美文网首页
第四周总结

第四周总结

作者: V_6619 | 来源:发表于2020-02-09 20:17 被阅读0次

主要过年太放纵,我一定改正 !!

继续努力呀,小V 同志!

这一周主要学了算法,想为复试做准备,本来以为应该挺快的,但是没想到其实算法挺难理解的,不过学完以后感觉各种理解确实加深了好多,下面整理一下。
(挺简单的,主要为了补上以前的坑,真是少壮不努力,老大徒伤悲)

1. 快速排序
这个算法难点主要是边界值,稍有不慎就会出现死循环或者排序错误,所以理解这个代码确实花了点时间。

 void quick_sort(int q[], int l, int r)
 {
     if(l >= r) return;
     int i = l-1;
     int j = r+1;
     int x = q[(l + r) >> 1];
     while( i < j)
     {
         do i++; while(q[i] < x);
         do j--; while(q[j] > x);
         if(i < j) swap(q[i], q[j]);
     }
      
      quick_sort(q, l , j);
      quick_sort(q, j+1, r);
 }

2. 归并排序
就我个人来讲,我觉得这个算法的难点是辅助数组赋回过程和对于递归的理解,因为对递归的不理解所以理解代码会有难度。

void merge_sort(int q[], int l, int r)
{
    if(l >= r) return;
    int mid = (l + r) >> 1;
     int i = l, j = mid+1;
    merge_sort(q, i, mid); merge_sort(q, j, r);
    int k = 0;
    while(i <= mid && j <= r)
    {
        if(q[i] <= q[j]) tmp[k++] = q[i++];
        else tmp[k++] = q[j++];
    }
    while(i <= mid) tmp[k++] = q[i++];
    while(j <= r)   tmp[k++] = q[j++];
    for(i = l, j = 0 ; i <= r; i++, j++) q[i] = tmp[j];
}

3. 二分查找
二分查找相对来讲要简单一些,但是有些小技巧,主要体现在 mid 是否进行加一操作
附上一个求三次根号的题目

#include <iostream>
using namespace std;

int main()
{
    double l = -10000, r = 10000;
    double x;
    cin>>x;
    double mid;
    while(r - l >= 1e-7)
    {
        mid = (l + r) / 2;
        if(mid * mid * mid <= x) l = mid;
        else r = mid;
    }
    printf("%.6f", l);
}

4. 01背包
对于一般的数据规划问题要按照下图考虑

TIM图片20200209200438.png

在01背包问题里集合代表所有选择的集合,属性是价值的最大值,状态计算根据题意推导出来

对于01背包问题每一次循环只有两个问题,选择第 i 个和不选择第 i 个,因此
dp[i][j] = max ( dp [ i - 1] [ j ] , dp [ i - 1 ] [ j - v] + w [ i ] );

    for(int i=1; i<=n; i++)
     {
         for(int j=0; j<=m; j++)
           {
               res[i][j] = res[i-1][j];
               if(j >= v[i]) res[i][j] = max(res[i][j], res[i-1][j-v[i]] + w[i]);
           }
     }

优化
将二维数组转换成一维, 要注意循环时要从大到小,如果不变顺序的话,
res[j-v[i]] + w[i] 的 i 就不是 i - 1 ,就会出错。

    for(int i=1; i<=n; i++)
     {
         for(int j=m; j >= v[i]; j--)
           {
    
                res[j] = max(res[j], res[j-v[i]] + w[i]);
                            
           }
     }

6.ccf大模拟题
这个真的是大头,太难了, 有的时候会很莫名其妙出现一些错误,让人抓狂,但是写了大模拟以后确实有一些提升
ccf 的化学方程式题目:就我个人而言,我觉得这个题目对我的提升很大https://www.jianshu.com/p/efca49969cd3

剩下的题目就不沾了,因为上一个题太经典了哈哈~

继续努力呀,小V 同志!

相关文章

  • 7月第四周周总结

    7月第四周周总结 7月第四周周总结 2020年,07:20-07.26周检视 没有反思就没有成长。没有反思的人生不...

  • 突然想到的总结

    这个月就第一周结束时写了周总结,现在已经是第四周了,那我就总结一下7月的第三周到今天——第四周的周二吧。上周周日2...

  • 《精力管理手册》读书总结·第四周

    《精力管理手册》读书总结·第四周 姓名:杏子 时间:2019.7.7 第四周思考题 Q1:请问你对《赢效率手册》的...

  • 健身精进100day:完全堕落的第四周&第五周该如何继续

    第三周我瘦了。但是第四周并没有乘胜追击。几乎算是完全堕落的第四周周总结。 这一周,有客观因素,是因为大姨妈来了。但...

  • 2018-10-17

    【重要通知】 擂台赛第四周计分规则如下—— 第三周、第四周打卡积分之和(占50%)+总结文得分(占50%)=排名得...

  • 第四周周记

    读《解放军为什么会赢》 第四周周记(3月24日) 朱峻锋 不知不觉到了第四周周记的总结,今晚下班回来的早,因为前两...

  • M8: 规划行动系统形成之复盘

    背景回顾: 时间顺序: (现在)2018年第四周,照惯例,自己继续给自己总结总结,过去的一周发生的事情,一句话总结...

  • 加速背后见彩虹!第四周读书总结BY大鱼摄影

    姓 名:大鱼摄影 时间:2018年8月23日 第四周思考题 加速背后见彩虹!第四周《加速》读书总结BY大鱼摄影 一...

  • 蓝鲸班杏花周(第四周)班级情况小结

    蓝鲸班杏花周(第四周)班级情况小结 这周杏花已经灿然开放,所以本周就叫“杏花周”。我们的班级一周总结...

  • 蓝鲸班杏花周(第四周)班级情况小结

    蓝鲸班杏花周(第四周)班级情况小结 这周杏花已经灿然开放,所以本周就叫“杏花周”。我们的班级一周总结...

网友评论

      本文标题:第四周总结

      本文链接:https://www.haomeiwen.com/subject/rdvnxhtx.html