
1D1A
码农凯凯
看我学渣奋起直追之路
展开
-
1D1A:1 插入排序
算法导论第一个算法就是插入排序,思想简单,如果是从小到大排序,就是从第二个数开始,和前边的数比较,直到大于等于前边那一个数,然后放在那个位置。 而且,先用Python写,就相当于伪代码,特别好,既有思路,还把Python练习一下,然后再用C++。 Python代码:def insertSort(A): for i in range(1,len(A)): key = A[i原创 2018-01-26 16:00:09 · 266 阅读 · 0 评论 -
1D1A:冒泡排序(3)
《算法导论》中的习题中,讲到了冒泡排序:是一种流行但是低效的排序方式,他的作用是反复交换相邻的未按次序排列的元素。 伪代码(Python):def bubbleSort(lists): length = len(lists) for i in range(length-1): for j in range(length-1-i):原创 2018-01-27 13:55:13 · 331 阅读 · 0 评论 -
快排+堆排序
3.6 快排 其实就是记住算法导论中的步骤,最坏情况就是排好序的,不管是正序还是倒序,情况都是最坏O(n^2).int partition(int a[],int p,int r) { int x = a[r]; int i = p - 1; for (int j = p; j < r ; j++) { if (a[j] < x) { ...原创 2018-03-07 00:05:40 · 278 阅读 · 0 评论 -
DP之钢管切割,最长回文字符串,最长公共子串
在做LeetCode第3题的时候,用到了DP,但是自己对DP还是不了解,所以翻开算法导论,开始看动态规划喽,学好动态规划,走遍天下都不怕。钢管切割 对于一根长n米的钢管,每个长度的价格不一样,对于长i米的钢管,价格为p[i],价格表如下所示: 现在问题是,给你一根长为n的钢管,你怎么切割,使得最后总价格最高。 比如:长度为4米的钢管,我们有8种方案,也就是对应着中间3段切不切的排列...原创 2018-03-08 13:16:24 · 377 阅读 · 0 评论 -
新学期新气象
度过了无聊的春节假期,今天也正式回到实验室,在家这一个月电脑都没有打开,更不要说更新算法啦。惭愧呀,自己现在总是缺少高四的坚持和自控力,也知道怎么做是最好的,怎么做是不好的,但是总没有动力,有时候特别讨厌现在的自己,不知道自己什么时候才能改变自己,只有感动了自己才能提高自己,做回自己喜欢的模样。今天继续算法导论,且行且珍惜,且行且努力。...原创 2018-03-04 16:50:26 · 534 阅读 · 0 评论