美文网首页
100天计划

100天计划

作者: 你_是谁家的美啊 | 来源:发表于2018-12-19 16:15 被阅读0次

计划书:每天3个算法题、3个知识点
2018-12-19

算法题:

快排

  • 时间复杂度:O(nlogn),最坏情况下O(n^2)
  • 空间复杂度:O(logn)
  • 解法1:选取第一个数或最后一个数为基准
#选取第一个数为基准
def quick_sort(array, left, right):
    if left >= right:
        return
    low = left
    high = right
    key = array[low]
    while left < right:
        while left < right and array[right] > key:
            right = right-1
        array[left] = array[right]
        while left < right and array[left] < key:
            left = left+1
        array[right] = array[left]
    array[right] = key
    quick_sort(array, low, left-1)
    quick_sort(array, left+1, high)
    return array
#选取最后一个数为基准
def quick_sort(array, left, right):
    if left < right:
        pivot = partition(array, left, right)
        quick_sort(array, left, pivot-1)
        quick_sort(array, pivot+1, right)
def partition(array, left, right):
    key = array[right]
    i = left-1
    for j in range(left,right):
        if array[j] <= key:
            i = i+1
            array[i], array[j] = array[j], array[i]
    array[i+1],array[r] = array[r], array[i+1]
    return i+1
  • 解法2:随机选取数为基准
    好处:在待排序列是部分有序时,固定选取枢轴使快排效率底下,要缓解这种情况,就引入了随机选取枢轴。
    python代码待补充。。。

  • 解法3:
    三数取中法,解法参考https://www.jianshu.com/p/a92e6b40c6b7
    好处:虽然随机选取枢轴时,减少出现不好分割的几率,但是还是最坏情况下还是O(n^2),要缓解这种情况,就引入了三数取中选取枢轴。(上面的代码思想都是直接拿序列的最后一个值作为枢轴,如果最后这个值刚好是整段序列最大或者最小的值,那么这次划分就是没意义的。 所以当序列是正序或者逆序时,每次选到的枢轴都是没有起到划分的作用。快排的效率会极速退化。所以可以每次在选枢轴时,在序列的第一,中间,最后三个值里面选一个中间值出来作为枢轴,保证每次划分接近均等。)
    python代码待补充。。。

冒泡排序

  • 时间复杂度:
  • 空间复杂度:
  • 解法:从无序序列头部开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾,从而成为有序序列的一部分;下一次继续这个过程,直到所有数据元素都排好序。标志变量用于记录每趟冒泡排序是否发生数据元素位置交换。如果没有发生交换,说明序列已经有序了,不必继续进行下去了。
def Bubble_sort(mylist):
       for i in range(len(mylist)-1):
        flag = False
        for j in range(len(mylist)-1-i):
            if mylist[j] > mylist[j+1]:
                mylist[j], mylist[j+1] = mylist[j+1], mylist[j]
                flag = True
        if not flag:
            break

归并排序
解法参考:https://www.jianshu.com/p/3ad5373465fd

12-20

知识点:
  • 时间复杂度:O(1)<O(logn)<O(n)<O(nlogn)<O(n²)<O(n³)<O(2ⁿ)<O(n!)

  • 空间复杂度:


    常见排序的时间及空间复杂度
  • 逻辑回归&交叉熵(重点)
    逻辑回归(logistic regression)定义:用来解决分类问题,因为通过拟合样本得到一个概率值。

  • GBDT系列(重点)
    决策树算法:
  • ID3(Iterative Dichotomiser 3)
  • C4.5
  • SVM

相关文章

  • 计划计划计划

    早起走路――听书,锻炼 上班,刨除杂念,高效工作。工作归工作,关系不要因工作受影响。 中午能眯,眯一会,看书。 下...

  • 计划、计划、计划

    很多人不爱做计划,但是我现在越来越意识到计划的重要性。 其实是个很简单的道理,没有计划怎么知道自己该做什么,该怎么...

  • 计划?计划!

    都说计划赶不上变化,似乎即便做好了计划,到头来也是无用功一场! 想想看,是这样吗?凡事无计划,便也免不...

  • 计划,计划?

    学期伊始,照例要写计划,这是概莫能外的差事。以前写计划,一般都要参考学校的行事历,避开可能的节假日和惯有的考试的时...

  • 计划,计划

    有的时候按部就班,或者说有条不紊,都是非常难能可贵的,由于自己没有把握住生活和生活之间的平衡, 所以非常累,无论是...

  • 计划计划

    又是一天过去了,不知道这样的开头还要用到什么时候。时间滴答滴答,有人说能受到前辈的提携是非常幸运的事,的确如此,我...

  • 计划、计划

    今天给自己制定了一个未来三年的语写目标,这个目标有些难度,不过是从过去自己语写的数据中推测出来的,不是一拍脑袋就想...

  • 计划计划

    //01// 没有目标的生活,浑浑噩噩,萎靡不振,整天都会无精打采,不知道生活的意义何在,甚至连早上起来,都会很困...

  • 计划计划

    杂乱无章的生活加上计划就会更有条理一些,很多人也都会用这种方式。 我也准备了自己写weeks的本本,从这周开始写属...

  • 计划控

    作为一个计划控,很喜欢制订各种计划,年计划、月计划、周计划甚至日计划,还会分类制订工作计划、学习计划、运动计划...

网友评论

      本文标题:100天计划

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