题目描述:http://acm.hdu.edu.cn/showproblem.php?pid=5171 算法: 可以先将数组a[]排序,然后序列 a1 , a2 , … , an 即为有序序列,则第一次加入的就是 an + an-1 ,第二次就是 an + (an + an-1) ,如此循...
分类:
其他好文 时间:
2015-02-10 00:30:43
阅读次数:
187
一.定义 归并排序是将两个排序的子序列合并,形成一个排序的数据序列,又称为两路归并排序.n个元素的数据序列可看成是由n个长度为1的排序子序列组成,反复将相邻的两个子序列归并成一个排序的子序列,直到合并成一个序列,则排序完成.二.算法实现 两路归并排序包括三个方法.核心操作是一次归并,将数组X...
分类:
编程语言 时间:
2015-02-09 22:55:34
阅读次数:
170
我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(#include #include #include #include using namespace::std; int main(){ char a[100][12]; int n,k;...
分类:
编程语言 时间:
2015-02-09 21:36:37
阅读次数:
174
合并算法,指的是将两个已经排序的序列合并成一个序列的操作 操作步骤: 1. 建立一个数组C用来存放合并后的数 2. 从数组A和数组B的首端开始比较,将大的元素放入C中 3. 重复2操作,直至其中一个数组的元素被用完,则将另一个数组中剩余的元素拷贝到C中 比较复杂度:n㏒n 交换(赋值)复杂度:n㏒n...
分类:
编程语言 时间:
2015-02-09 21:32:56
阅读次数:
157
快速排序使用分治法策略来把一个序列分为两个子序列 算法步骤: 1. 从数列中挑出一个元素,称为 "基准"(pivot) 2. 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面 (相同的数可以到任一边)。在这个分割结束之后,该基准就处于数列的中间位置。这个称为分割(...
分类:
编程语言 时间:
2015-02-09 21:32:02
阅读次数:
147
算法步骤: 1. 未排序序列中找到最小元素,存放到排序序列的起始位置 2. 再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾 3. 以此类推,直到所有元素均排序完毕 比较复杂度:n(n-1)/2 交换(赋值)复杂度:n-1 优点:相比冒泡排序来讲,交换的次数减少了 缺点:相对快速排序,比较...
分类:
编程语言 时间:
2015-02-09 21:29:53
阅读次数:
129
算法步骤: 1.从第一个元素开始,该元素可以认为已经被排序 2.取出下一个元素a,在已经排序的元素序列中从后向前扫描 3.如果已排序中的元素b大于a,则将元素b后移一个位置 4.重复步骤3,直到找到已排序的元素x小于或者等于元素a 5.将元素a插入到x的后面 6.重复步骤2~5 public sta...
分类:
编程语言 时间:
2015-02-09 21:28:37
阅读次数:
149
原文链接:http://www.faceye.net/search/144443.html1. 所有的标准序列操作都使用于字符串,记住字符串不可改变。2. 字符串格式化:标记转换说明符(%),如果字符串本身包含%,用%%代替。3. 字符串格式化转换标志:-表示左对齐;+表示在转换值前加正负号;""(...
分类:
编程语言 时间:
2015-02-09 19:56:25
阅读次数:
150
给定正整数N,函数F(N)表示小于等于N的自然数中1和2的个数之和,例如:1,2,3,4,5,6,7,8,9,10序列中1和2的个数之和为3,因此F(10)=3。输入N,求F(N)的值,1=
输入:
输入包含多组测试数据,每组仅输入一个整数N。
输出:
对于每组测试数据,输出小于等于N的自然数中1和2的个数之和,且对20123取模。
样例输入:
10
11
样例输出:
3
5...
分类:
其他好文 时间:
2015-02-09 18:25:38
阅读次数:
151