
算法学习
好好学习 天天向上
一只路过的打工人
好好学习 天天向上
展开
-
快速排序(Quick Sort)
通过一轮排序,将整个待排序列分割成独立的两部分,其中一部分的所有数据均比另一部分的数据小,然后以同样的方法,继续对这两部分进行排序,从而达到整个序列有序。步骤1,2 称作一趟快速排序,或一次划分。快速排序是对冒泡排序的一种改进。原创 2022-12-22 12:28:59 · 153 阅读 · 0 评论 -
选择排序(Selection Sort)
每一趟从待排序的数据元素中选出最小的一个元素,按顺序放在待排序的数列的最前端,直到完成排序原创 2022-12-14 23:19:24 · 130 阅读 · 1 评论 -
动态规划(Dynamic programming)
基本概念动态规划是一种分阶段求最优值的算法:将复杂的问题按阶段划分成一个个的子问题,然后枚举子问题可能出现的各种情况,从中找出最优解,即利用子问题的最优解求得原问题的最优解几个概念阶段:用动态规划求解一个问题时,需要将问题的全过程恰当的分成若干个相互联系的阶段,以便按一定的次序去求解。阶段的划分一般是根据时间和空间的自然特征来划分,同时阶段的划分要便于把问题转化成多阶段决策过程。即根据空间顺...原创 2020-03-22 22:21:07 · 688 阅读 · 0 评论 -
插入排序(Insertion Sort)
在插入之前,要先把它后面的所有数据后移一位,以防止要插入位置的原数据被覆盖。当读入一个数据时,在已经排好的序列中,搜寻它正确的位置,插入读入的数据。第一步: 4 【3,6,1,8,5,2,7】第八步: 1,2,3,4,5,6,第五步: 1,3,4,6,在已排序队列中,从后往前找。第六步: 1,3,4,原创 2020-03-15 23:03:33 · 200 阅读 · 1 评论 -
贪心算法(Greedy Algorithm)
基本概念一种求最优解的方法。它是按照某种最优策略,将复杂问题层层分解成子问题(每次一般只有一个),并由子问题的最优解“回溯”出整个问题的最优解从贪心算法的定义可以看出,贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解,而由问题自身的特性决定了该题运用贪心算法可以得到最优解如果一个问题可以同时用几种方法解决,贪心算法应该是最好的选择之一...原创 2020-09-26 16:51:13 · 266 阅读 · 0 评论 -
冒泡排序(Bubble Sort)
每进行一轮比较之后,n 个数的排序问题就转化成了 n-1 个数的排序问题(此时的 n = n - i,即减去已经排序正确的数)以 n 个数排序为例,从第一个开始,依次比较相邻的两个数是否是逆序对,如果是逆序对,就交换两个数,以此类推,直到。所以,总共要进行 n-1 轮冒泡,每轮进行 n-1 次比较。经过一轮排序,最大的数像冒泡一样排到队列最后。正序: 小➡大,逆序: 大➡小。原创 2022-01-19 22:51:35 · 541 阅读 · 0 评论