|
|
|
|
|
文章分类 -
算法
顺序表和链表的区别及其优缺点
摘要:1.顺序表存储(典型的数组) 原理:顺序表存储是将数据元素放到一块连续的内存存储空间,相邻数据元素的存放地址也相邻(逻辑与物理统一)。 优点: 1.空间利用率高。(局部性原理,连续存放,命中率高) 2.存取速度高效,通过下标来直接存储。 缺点: 1.插入和删除比较慢,比如:插入或者删除一个元素时,整
阅读全文
while循环二分查找法
摘要:二分查找的时间复杂度是O(logn) def binary_search(li,val): 第一个元素的索引 low = 0 最后一个元素的索引 high = len(li) 1 while low val: high = mid 1 else: return mid return 1 li = [
阅读全文
python双向队列deque
摘要:from collections import deque q = deque() # 1 append(往右边添加一个元素) q.append(1) q.append(2) q.append(3) print(q) # 2 appendleft(往左边添加一个元素) q.appendleft(-1) q.appendleft(-2) q.appendleft(-3) print(q) ...
阅读全文
python冒泡排序
摘要:冒泡排序思路 列表每两个相邻的数,如果前边的比后边的大,那么交换这两个数...... # 冒泡简单版 # 时间复杂度:O(n*n) def bubble_sort(li): # i表示第i趟,共n-1趟 for i in range(len(li) - 1): # 第i趟,无序区范围0 --- (n-i-1) for j in range(le...
阅读全文
python整数转字符串
摘要:num = int(input('请输入一个整数:')) s = '' def int_to_str(val): li = [] while val > 0: digit = val % 10 li.append(digit) val //= 10 return li lst = int_to_str(num) for i ...
阅读全文
python选择排序
摘要:选择排序思路一趟遍历记录最小的数,放到第一个位置;再一趟遍历记录剩余表中最小的数,继续放置;
阅读全文
python字符串转整数
摘要:num = '654321' def str_to_int(str): val = 0 for ch in str: val *= 10 val += ord(ch) - ord('0') return val print(str_to_int(num), type(str_to_int(num))) # 654321
阅读全文
two_sum求两数之和,
摘要:# 给定一个列表和一个整数,设计算法找到两个数的下标,使得两个数之和为给定的整数,保证肯定仅有一个结果.# 例:列表li=[0, 1, 2, 3, 4, 5, 6]与目标整数6,结果为{0: 6, 1: 5, 2: 4, 3: 3}.li = [0, 1, 2, 3, 4, 5, 6] # 解法1: def two_sum_1(li, target): for i in range(le...
阅读全文
Python字符串反转操作
摘要:#!/usr/bin/python # -*- coding: UTF-8 -*- # 字符串反转操作 lst = [] def output(str, length): if length == 0: return lst lst.append(str[length - 1]) output(str, length - 1) str = inp...
阅读全文
Python利用递归计算年龄
摘要:已知有五位朋友在一起。第五位朋友他说自己比第4个人大2岁;问第4个人岁数,他说比第3个人大2岁;问第三个人,又说比第2人大两岁;问第2个人,说比第一个人大两岁;最后问第一个人,他说是10岁。要求:求第5个人的年龄是多少。
阅读全文
Python判断字符串1234321是不是回文
摘要:#!/usr/bin/env python # -*- coding:utf-8 -*- num = int(input("请输入一个数字:\n")) x = str(num) flag = True # 判断1234321是不是回文数 for i in range(len(x) // 2): if x[i] != x[-i - 1]: flag = False ...
阅读全文
Python if控制流语句
摘要:#!/usr/bin/env python # -*- coding:utf-8 -*- # Python if控制流语句 letter = input("please input:") if letter == 'S': print('please input second letter:') letter = input("please input:") if l...
阅读全文
Python列表反转操作
摘要:# 列表反转1 a = [99, 66, 25, 10, 3] a.reverse() print(a) # 列表反转2 a = [99, 66, 25, 10, 3] print(a[::-1]) # 列表反转3 a = [145, 130, 120, 99, 66, 25, 10, 3] N = len(a) for i in range(len(a) // 2): a[i]...
阅读全文
Python join()逗号分割列表
摘要:#!/usr/bin/env python # -*- coding:utf-8 -*- lst = [1,2,3,4,5] str = '-'.join(str(n) for n in lst) print(str)
阅读全文
Python基础函数调用
摘要:#!/usr/bin/env python # -*- coding:utf-8 -*- def func1(): print('hello world !') def func2(): for i in range(3): func1() if __name__ == '__main__': func2()
阅读全文
Python函数名挂载变量
摘要:def func(x,y): mysum = x+y return mysum func.name = 'apollo' print(func.name) # apollo # print(func.age) # 不挂载,获取会报错 # AttributeError: 'function' object has no attribute 'age'
阅读全文
python输出指定区间范围内的素数
摘要:#!/usr/bin/env python # -*- coding:utf-8 -*- # 输出指定范围内的素数 lower = int(input("请您输入区间最小值: ")) upper = int(input("请您输入区间最大值: ")) lst = [] for num in range(lower,upper + 1): # 素数大于 1 if num > 1:...
阅读全文
python对数组插入排序
摘要:#!/usr/bin/env python # -*- coding:utf-8 -*- lst = [5,1,4,3,2] for i in range(len(lst) - 1): for j in range(i + 1, len(lst)): if lst[i] > lst[j]: lst[i], lst[j] = lst[j], lst...
阅读全文
Python求3*3矩阵对角线元素之和
摘要:#!/usr/bin/env python # -*- coding:utf-8 -*- """ # 3*3矩阵对角线元素之和 1 2 3 4 5 6 7 8 9 # array = [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]] """###########################...
阅读全文
|
|