个人的一些理解与学习笔记 | 青训营

54 阅读2分钟

对于Hertz框架的学习方式的建议

跟着hertz官方网站的文档上面的教程一步步地学习和使用的话,而且在未来也能拓宽一下自己的就业方向!!!

最近复习的排序算法

冒泡算法

  • 就像名字一样,将每两个相邻的数据进行比较,如果前一个数据大于后一个数据,就将其“冒泡”出去,也就是交换数据,把更大的数据放到后面去,执行了 数组长度减一次大排序后,就结束
  • 优化手段:初始化一个boolea值的flag 变量,每个次交换了数据就将flag设为true,当没变化之后就 跳出最外层循环

选择算法

  • 先初始化最小值及其索引,再将其后面的数据中的最小值与先前初始化后的最小值交换。
    总之:每次排序时,依次将第一个位置到最后一个位置的值确定下来。将未确定值的索引范围内的最小值放到最前面
  • 优化手段:如果后面确定下来的数据和一开始初始化的值一样的话,那么就不进行交换

插入排序

  • 确定初始化插入位置的索引、记录要进行插入的值 , 然后确定插入位置的索引,进行插入
  • 优化手段:判断一开始初始化的插入索引位置是否和真正需要插入位置的索引位置是否一致,如果一致的话,就不进行赋值,也就是不进行插入!!!

希尔排序

  • 交换法

    • 设置好分组,总体逻辑是一判断数据顺序不对的情况,就将两数交换位置
    • 这种方式有点像冒泡排序,效率很低
  • 移位法(相较于交换法的优化版本)

    • 也是设置好分组的间隔gap,只是将每个分组的所有数据利用插入排序算法的逻辑进行排序,然后确定好插入位置的索引,并记录需要插入的值,在最后确定好插入位置的索引之后,才进行数据的交换
    • 相较于交换法,省去了多次交换数据的麻烦,而是直接在确定好插入位置之后,就将数据一次性插入