Python 算法
文章平均质量分 79
用 Python 去实现常用的算法,解决实际问题。
江南野栀子
人在红尘里,心在山水间。
展开
-
递归算法--02 迷宫问题:指定单入口和单出口,找到所有路径即可
给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 '.' 表示)和墙体(用 '+' 表示)。同时给你迷宫的入口 entrance ,用 entrance = [entrancerow, entrancecol] 表示你一开始所在格子的行和列。每一步操作,你可以往 上,下,左 或者 右 移动一个格子。你不能进入墙所在的格子,你也不能离开迷宫。求解目标: 你的目标是找到通往指定出口的所有路径。出口是 maze 边界 上的 空格子,由用户原创 2022-03-25 11:16:04 · 1114 阅读 · 0 评论 -
递归算法--01 迷宫问题:指定单入口和单出口,找到任意路径即可
递归算法--01 迷宫问题:指定单入口和单出口,找到任意路径即可问题背景:给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 '.' 表示)和墙体(用 '+' 表示)。同时给你迷宫的入口 entrance ,用 entrance = [entrancerow, entrancecol] 表示你一开始所在格子的行和列。每一步操作,你可以往 上,下,左 或者 右 移动一个格子。你不能进入墙所在的格子,你也不能离开迷宫。原创 2022-03-24 20:14:15 · 2045 阅读 · 0 评论 -
排序算法---03 选择排序 Selection sort
1. 选择排序描述1.1 选择排序实现原理 选择排序是一种简单直观的排序算法。它的工作原理就是:先在未排序序列中找出最小(最大)的数,然后放在排序序列的起始位置;接着从剩余的序列中再找出次最小(最大)的数,放在已经排序的数列后,依次类推直到所有的元素均排序完毕。1.2 选择排序性能选择排序性能 性能指数 描述 时间复杂度(平均) o(n2),即o(n**2) 不管当前序列排序如何,都需要n-1排序, 每次n-i 次比较。它是无记忆...原创 2022-01-14 13:58:02 · 310 阅读 · 0 评论 -
排序算法---02 冒泡排序 Bubble sort
目 录1. 冒泡排序描述1.1 冒泡排序实现原理1.2 冒泡排序性能2. 冒泡排序实现2.1 冒泡排序简单实现2.2 冒泡排序优化-减少冒泡循环次数2.3冒泡排序优化-减少每个循环中比较的次数1. 冒泡排序描述1.1 冒泡排序实现原理 冒泡排序是指从第一个元素开始,依次和周边的元素做比较,如果后面的元素比前面的小,则两者进行交换,这样两两比较和交换一轮,则最后的元素即第n个元素就是最大的,下次只需要交换到第 n-1 个元素即可。 ...原创 2022-01-13 17:50:27 · 527 阅读 · 0 评论 -
查找算法--01 顺序查找和二分查找
1. 顺序查找1.1 顺序查找介绍 顺序查找是最常见也是最朴素的查找思想,即按顺序比较一个有序或者无序的数列的每个元素,直到找到关键字为止。1.2 顺序查找适用范围它非常简单,适用于一个有序或者无序的数列。时间复杂度:O(n)1.3 顺序查找代码实现 # 顺序查找,找到就返回所在地址,找不到返回 -1 # 可以看到如果存在多个相同元素,那么找到的第一个即返回import randoma=[0, 1, 3, 4, 4,...原创 2022-01-13 15:07:39 · 3278 阅读 · 0 评论 -
排序算法---01 简单插入排序 insection sort
1. 简单插入排序描述1.1 简单插入排序实现原理简单插入排序是一种实现起来比较简单的算法,它是一种 in-place 排序,只需要很少的空间。实现原理就是对序列从头循环扫描,每次取第 n 个元素和前面的元素依次比较,如果小于其中第 m个元素 ,,m 元素和后面到 n-1 元素依次往后挪,将 n 元素插入 m 元素的位置。1.2 简单插入排序性能简单插入排序算法性能 性能指数 描述 时间复杂度(平均) o(n2),即o(n**2) 在一...原创 2022-01-13 15:14:59 · 363 阅读 · 0 评论