随笔分类 -  算法

基本算法
摘要:有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入n和k,输出开着的灯的编号。k≤n≤1000。样例输入:7 3样例输出 阅读全文
posted @ 2018-08-07 17:07 YzdFly 阅读(130) 评论(0) 推荐(0)
摘要:实现内容: 假如有这样一个数组,A[] = {13,-2,-25,20,-3,-16,-23,18,20,-7,12,-5,-22,15,-4,7};要求得到一个总值最大的子数组。例如A[]的一个最大子数组为A[7..10]={18,20,-7,12}。 求解思想: 1)暴力求解 循环每一个元素,并从每一个元素的下标开始累加,每次选取较大的和。例如从第一个元素开始,第一次累加是13,那... 阅读全文
posted @ 2017-08-02 13:45 YzdFly 阅读(270) 评论(0) 推荐(0)
摘要:MergeSort 归并排序 排序思想:1,分解待排序的n个元素为两个子列,各为n/2个元素 2,若子列没有排好序,重复1步骤,每个子列继续分解为两个子列,直至被分解的子列个数为1 3,子列元素个数为1,说明这个子列已经排好序,开始逐级合并子序列进行排序 该算法需要合并分解的子序列,所以需要额外一个辅助过程Merge(A,p,q,r)来完成两个子列的合并,A为数组,p,q,r为... 阅读全文
posted @ 2017-07-28 14:10 YzdFly 阅读(3904) 评论(0) 推荐(0)
摘要:排序思想: 相当于一堆数字,一开始先取出2个数排序,2个数排好序之后,再从一堆数字里面取一个数排序,直到结束伪代码: INSERTION_SORT(A) for j = 2 to A.length key = A[j] //Insert A[j] into sorted sequence A[1.. 阅读全文
posted @ 2017-07-26 19:02 YzdFly 阅读(228) 评论(0) 推荐(0)