插入排序: 概述: (1) 把第一个元素看成一个已排序的元素(因为只有一个,所以可以看成已经排序好的)。 (2)用第二个元素和第一个元素比较,如果第二个元素小于第一个元素,那么进行交换。 用第三个元素和第二个元素比较,如果第三个元素小于第二个元素,那么进行交换。 交换完毕之后再看,现在的第二个元素是 ...
分类:
编程语言 时间:
2018-01-24 22:05:54
阅读次数:
104
本节大纲 迭代器&生成器 迭代器 迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退。另外,迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素。迭代器仅仅在迭代到某个元素时才计 ...
分类:
编程语言 时间:
2018-01-22 11:02:50
阅读次数:
161
问题: 一个人写了n封不同的信及相应的n个不同的信封,他把这n封信都装错了信封,问都装错信封的装法有多少种? "就是hdu2048" Solution: 采用递推的方法 记 $n$ 个数的错排的方案为 $f(n)$。 如果我们已经求出来前 $n 1$ 个 $f(n)$ ,现在考虑将第一个元素放在第 ...
分类:
其他好文 时间:
2018-01-21 14:53:25
阅读次数:
165
【插入排序】:每次保证列表最左端子序列是排好顺序的,然后取下一个元素,扫描其左端的子序列,将其中大于目标元素的元素右移一个位置,直到找到合适的位置将目标元素插入子序列中。逐步增大排序完成的sublist的长度,最终完成整个列表的排序 算法思路如下: 1. 列表最左边第一个元素认为已经排序好了 2. ...
分类:
编程语言 时间:
2018-01-21 12:31:23
阅读次数:
163
1、序列特点 序列的每一个元素被分配一个序号—即元素的位置(索引) 常用序列 字符串、列表、元祖 2、通用序列操作 索引 即通过元素序号访问元素,第一个元素序号为0,最后一个元素为-1 demo_list = [1, 'This is only a test!', 2018] print(demo_ ...
分类:
编程语言 时间:
2018-01-21 00:10:59
阅读次数:
162
sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。 下面我们通过几行简 ...
分类:
编程语言 时间:
2018-01-20 21:29:37
阅读次数:
192
迭代器( iterator) ——是访问集合元素的一种方式,迭代器从集合的第一个元素开始访问,直到所有元素被访问结束。并且,迭代器只能向前访问。 优点:不要求事先准备好整个迭代过程中的所有元素,迭代器仅仅在迭代到某个元素时才计算该元素。在这之前和之后,元素可以不存在或者被销毁。这一大优点使迭代器特别 ...
分类:
编程语言 时间:
2018-01-19 21:29:21
阅读次数:
200
题目:输入递增数组的一个旋转,输出旋转数组的最小元素。 /* 解题思路: 1.本题中,最小的元素是被旋转部分数组的第一个元素;采用二分法,当中间值小于数组末尾元素时,说明此中间值处于被旋转 部分数组当中,最小值在左边包含中间值的数组中,high=mid;当中间值大于数组末尾元素时,说明此中间值处于前 ...
分类:
编程语言 时间:
2018-01-19 15:44:06
阅读次数:
174
对于一个php数组,该如何删除该数组的第一个元素或者最后一个元素呢?其实这两个过程都可以通过php自带的函数 array_pop 和 array_shift 来完成,下面就具体介绍一下如何来操作。 (1)使用 array_pop 删除数组的最后一个元素,例如: 结果将是: orange array( ...
分类:
编程语言 时间:
2018-01-19 11:26:44
阅读次数:
179
题目大意:蓝书P115 不愧是WF的题 不难发现R的个数为L/2 + 2,O的个数为L/2 - 2 三种做法,第一种比较麻烦,dp[i][j][k][l]表示i个R,j个O,第一个元素是(k)R,最后一个元素是(l)R 不难发现i - j > 5无意义,线性复杂度 第二种,压缩状态。 不难发现求得的 ...
分类:
其他好文 时间:
2018-01-18 23:04:08
阅读次数:
185