zoukankan      html  css  js  c++  java
  • 算法

    时间复杂度:用来估计算法运行时间的一个式子。时间复杂度高的算法比时间复杂度低的算法慢

    空间复杂度:用来评估算法内存占用大小的一个式子。

    n位数的水仙花数

    list2=[]
    for i in range(10**(n-1),10**n):
      str1=str(i)
      sum1=0
      for j in str1:
        num=int(j)
        sum1+=num**n
      if i==sum1:
        list2.append(i)
    print(list2)

    冒泡排序:列表每相邻的数,如果前边的比后边的大,交换两个数。

    def Bubble_sort(li):
        for i in range(len(li)-1):
            for j in range(len(li)-1-i):
                if li[j] > li[j+1]:
                    li[j],li[j+1] = li[j+1],li[j]
    li = [7,5,4,6,3,8,2,9,1]
    Bubble_sort(li)
    print(li)

    时间复杂度:O(n*n)

    选择排序:一趟遍历记录最小的数,放到第一个位置

    def select_sort(li):
        for i in range(len(li)):
            minLoc = i
            for j in range(i+1, len(li)):
                if li[j] < li[minLoc]:
                    li[j],li[minLoc] = li[minLoc],li[j]
    li = [7,5,4,6,3,8,2,9,1]
    select_sort(li)
    print(li)

    时间复杂度:O(n*n)

    插入排序:列表被分为有序区和无序区,最初有序区只有一个元素,每次从无序区选择一个元素,插入到有序区的位置,直到无序区变空。

    def insert_sort(li):
        for i in range(1, len(li)):
            tmp = li[i]
            j = i - 1
            while j >= 0 and li[j] > tmp:
                li[j+1] = li[j]
                j = j - 1
            li[j+1] = tmp
    li = [7,5,4,6,3,8,2,9,1]
    insert_sort(li)
    print(li)

    时间复杂度:O(n*n)

    快速排序:取一个元素P,使元素P归位,列表被p分成两部分,左边都比p小,右边都比p大。

    def partition(li, left, right):
        tmp = li[left]
        while left < right:
            while left < right and li[right] >= tmp:
                right = right - 1
            li[left] = li[right]
            while left < right and li[left] <= tmp:
                left = left + 1
            li[right] = li[left]
        li[left] = tmp
        return left
    
    def quick_sort(li, left, right):
        if left < right:
            mid = partition(li,left,right)
            quick_sort(li,left,mid-1)
            quick_sort(li,mid+1,right)
    li = [7,5,4,6,3,8,2,9,1]
    quick_sort(li,0,8)
    print(li)
    dayehui
  • 相关阅读:
    SQLServer2005删除log文件和清空日志的方案
    使用sql语句创建修改SQL Server标识列(即自动增长列)
    C# 使用ffmpeg.exe进行音频转换完整demo-asp.net转换代码
    web页面如何播放amr的音频文件
    IIS7.5 伪静态 脚本映射 配置方法
    多表数据连接 Left join
    .NET 开发快捷键大全
    微信开发-ACCESS TOKEN 过期失效解决方案
    HTML5常用的方法
    IIS 7.0 部署MVC
  • 原文地址:https://www.cnblogs.com/zrh-960906/p/12093351.html
Copyright © 2011-2022 走看看