zoukankan      html  css  js  c++  java
  • 20182309 2019-2020-1 《数据结构与面向对象程序设计》第8周学习总结

    20182309 2019-2020-1 《数据结构与面向对象程序设计》第8周学习总结

    教材学习内容总结

    • 查找
      • 线性查找
      • 二分查找
      • 哈希查找
    • 排序
      • 选择排序
      • 插入排序
      • 冒泡排序
      • 快速排序
      • 归并排序

    教材学习中的问题和解决过程

    • 问题1:改进冒泡排序
    • 问题1解决方案:设立以个flag,如果有一次没有交换,那么排序提前完成
    • 问题2:改进线性查找
    • 问题2解决方案:倒着查找,在0位置放一个哨兵等于查找的值,如果查到哨兵则未找到。可以少在循环里判断一个值。

    代码调试中的问题和解决过程

    • 问题1:哈希查找的代码没头绪
    • 问题1解决方案:
    public class HashTablelink {
        private final String TAG="HashTablelink";
        private SortedList[] hashArray;
        private int arraySize;
        public HashTablelink(int size){
            arraySize=size;
            hashArray=new SortedList[arraySize];
            for(int i=0;i<arraySize;i++){
                hashArray[i]=new SortedList();
            }
        }
     
        public void displayTable(){
            StringBuilder sb=new StringBuilder();
            sb.append("[");
            for(int j=0;j<arraySize;j++){
                sb.append(hashArray[j].toString());
                sb.append(",");
            }
            sb.append("]");
            Log.v(TAG,"HastTableLink的值为:"+sb.toString());
        }
     
        /**
         * 首次哈希
         * 将传入的key经过hash算法,这里使用的普通除以数组大小求余的方法,而实际不是这么简单
         * @param key
         * @return
         */
        public int hashFunc(int key){
            return key%arraySize;
        }
     
        /**
         * 插入元素
         */
        public void insert(LinkHash item){
            int key=item.getKey();
            int hashVal=hashFunc(key);//哈希到的下标位置
            hashArray[hashVal].insert(item);
        }
     
        /**
         * 删除元素
         */
        public void delete(int key){
            int hashVal=hashFunc(key);//哈希到的下标位置
            hashArray[key].delete(key);
        }
     
        /**
         * 查找元素
         */
        public LinkHash find(int key){
            int hashVal=hashFunc(key);//哈希到的下标位置
            LinkHash theLink=hashArray[hashVal].find(key);
            return theLink;
        }
     
    }
    

    代码托管

    结对及互评

    • 代码中值得学习的或问题:
      • 提出与课本不同的方法解决问题
    • 基于评分标准,我给本博客打分:11分。得分情况如下:
      • 正确使用Markdown语法加1分
      • 模板中的要素齐全加1分
      • 教材学习中的问题和解决过程, 二个问题加2分
      • 代码调试中的问题和解决过程, 一个问题加1分
      • 本周有效代码超过300分行的加2分
      • 排版精美的加1分
      • 代码Commit Message规范的加1分
      • 有动手写新代码的加1分
      • 结对学习情况真实可信的加1分

    点评过的同学博客和代码

    • 本周结对学习情况
      • 20182331
        • 阅读教材第13章章节内容
        • 代码托管到码云上
        • 完成课后自测题,并参考答案学习
        • 完成课后练习题
        • 完成程序设计项目,至少完成pp13.2,pp13.6

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 10000行 30篇 400小时
    第一周 138/138 2/2 25/25 学会写和上传代码,会编简单的输出程序
    第二周 88/226 1/3 30/55 起文件名不能太长
    第三周 898/1124 2/5 35/90 Java类里面的方法和C语言的函数很像
    第四周 632/1756 2/7 30/120 可以用继承extends简化重复的代码
    第五周 770/2526 2/9 45/165 --amend -m可以重命名没push的文件
    第六周 3947/6473 2/11 40/205 接口类的功能要分散,利用多继承完成功能
    第七周 1359/7832 3/14 35/240
    第八周 273/8105 1/15 15/255 查找前先排序更好

    参考资料

  • 相关阅读:
    jsp grid can not be used in this ('quirks') mode
    weblogic stage更改不马上生效
    shell执行class或jar
    java json字符串与对象转换
    js对象及元素复制拷贝
    js中json字符串与对象的转换及是否为空
    js window.open隐藏参数提交
    poi excel文件名或者内容中文乱码
    linux poi生成excel demo调试附调用代码
    PeekMessage与GetMessage的对比
  • 原文地址:https://www.cnblogs.com/blueflameashe/p/11792866.html
Copyright © 2011-2022 走看看