April 28:Weekly Journal Board

142 阅读1分钟

①②

一别都门三改火,天涯踏尽红尘。依然一笑作春温。无波真古井,有节是秋筠。
惆怅孤帆连夜发,送行淡月微云。尊前不用翠眉颦。人生如逆旅,我亦是行人。

2022年8月22日

204. 计数质数

2022年8月23日

326. 3 的幂


# 判断 N 是否是 n 的幂
def isPowerofN(n, N):
    # n 的 0 次幂即等于 1
    if N == 1:
        return True
    elif N < 1:
        return False
    return True if isPowerofN(n, N / n) else False
    
# 判断是否是质数
def isPrimeNumber(n):
    if n == 1:
        return False
    else:
        for i in range(2, int(n**0.5) + 1):
            if n % i == 0:
                return False
        return True

# 计数:小于 n 的数中,质数的数量(埃氏筛法)
def countPrimes(n):
    count = 0
    primeNums = [True] * n
    for i in range(2, n):
        if primeNums[i]:
            count += 1
            for j in range(i+i, n, i):
                primeNums[j] = False
    return count

2022年8月24日

118. 杨辉三角

2022年8月25日

css企业开发经验、习惯,盒子模型,层模型

2022年8月26日

希尔排序

时间

空间


# 希尔排序
def shellSort(nums):
    def shellHelper(nums, start, gap):
        n = len(nums)
        for i in range(start+gap, n, gap):
            temp = nums[i]
            for j in range(i, gap-1, -gap):
                if (temp < nums[j-gap]):
                    nums[j] = nums[j-gap]
                else:
                    j += gap
                    break
            nums[j-gap] = temp

    n = len(nums)
    gap = n // 2
    while gap > 0:
        for i in range(gap):
            shellHelper(nums, i, gap)
        gap //= 2

    return nums

2022年8月27日

2022年8月28日

归并排序

时间:

空间:


# 归并排序

import random

def mergeSort(nums):
    if len(nums) < 2: return nums
    # temp = []
    mid = len(nums) >> 1
    left, right = nums[:mid], nums[mid:]
    return merge(mergeSort(left), mergeSort(right))

def merge(left, right):
    res = []
    i, j = 0, 0
    while i < len(left) and j < len(right):
        if left[i] <= right[j]:
            res.append(left[i])
            i += 1
        else:
            res.append(right[j])
            j += 1
    while i < len(left):
        res.append(left[i])
        i += 1
    while j < len(right):
        res.append(right[j])
        j += 1
    return res

def aNums(n):
    nums = []
    for i in range(n):
        nums.append(i)
    for i in range(n >> 1):
        l, r = random.randint(0, n-1), random.randint(0, n-1)
        nums[l], nums[r] = nums[r], nums[l]
    return nums

nums = aNums(20)
print(mergeSort(nums))