学习算法



leetcode 买卖股票问题

lc121 买卖股票最佳时机 思路:dp[i]:表示到第 i 天为止能获得的最大利润,所以 dp[i] 等于max{今天的价格prices[i] - 从第 1 到第 i-1天之中股票最低价格minPrice,dp[i-1]} …

二分查找
二分查找

猜数字 现有两个玩家,分别为玩家A和玩家B; 玩家A从一个范围中选择一个数(例如从 [1,1000] 中选择了352) 让玩家B猜玩家A选择的数 若玩家B猜的数字x小于352,说明x<352<=1000,应当在 [x+1,1000]中 …

排序笔记

快速排序 核心思想是分治,每次选定一个分界值,将小于分界值的数丢到左边,大于分界值的数丢到右边,然后递归排序。 分界值选择某个固定的位置可以被卡掉,但出题人也猜不到你选了啥吧,再不放心写随机选 …

算法小结(二):列表排序1
算法小结(二):列表排序1

一、列表排序概述 列表排序就是将无序列表转变为有序列表,包括升序和降序两种,python内置函数为sort()。 常见排序算法有冒泡排序、选择排序、插入排序、快速排序、堆排序、归并排序、希尔排序、计数排序 …

十大经典排序之前言
十大经典排序之前言

十大经典排序 内部排序 数据记录在内存中排序 插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等 稳定性:排序后 2 个相等键值的顺序和排序之前它们的顺序相同 外部排序 而 …

排序
排序

本文参考博主阿尔兹,博主神韵499的排序专栏 排序基础概念 稳定性: 稳定性是指待排序的序列中有两元素相等,排序之后它们的先后顺序不变.假如为A1,A2.它们的索引分别为1,2.则排序之后A1,A2的索 …

用Java实现三大基本排序(冒泡排序、选择排序、插入排序)。个人思路
用Java实现三大基本排序(冒泡排序、选择排序、插入排序)。个人思路

Java数组三大基本排序 1、冒泡排序 2、选择排序 3、插入排序 个人思路,大家互相参考,讨论 排序是把一堆数组有小到大、由大到小从头到尾按照一定的顺序排列起来的。(全部以从小到大排 …

七大排序算法详解,动图展示 +代码实现,老奶奶看了都直呼内行
七大排序算法详解,动图展示 +代码实现,老奶奶看了都直呼内行

1、插入排序:(元素少时插排最快) 1、[ 有序区间 (黄间), 无序区间 (蓝间) ] 每次操作: 1、抓无序区间(右侧蓝区)的第一张牌 …

各大排序算法对比
各大排序算法对比

算法 简述 逻辑做法 最坏 平均 最好 空间复杂度 稳定性 复杂性 重点 测试(100000) 实际效率(以随机下冒泡为基准) 优点缺点 评价 冒泡 冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序。 它是一种较简 …

十大经典排序之选择排序(C++实现)

选择排序 思路: 1.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置 2.再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾 3.重复第二步,直到所有元素均排序完毕 代 …

数组排序——冒泡排序和选择排序

数组排序 排序: 排列顺序 从大到小 从小到大 排序算法有很多,比较基础的有冒泡排序的和选择排序。 (1)冒泡排序 冒泡排序规则: 相邻的两个元素进行比较,如果前者大于后者,那么两者交换位置(每次比较 …