step小结1

来源:互联网 发布:局域网流量分析软件 编辑:程序博客网 时间:2024/05/19 18:14

第一章总结

P1

输入与输出

简单的输入输出

全是水题(虽然一直没明白1.1.8为啥PE。。)

P2

简单模拟

大多是水题

Tips:

getchar()吸收回车。

P3

贪心算法

基本的贪心,主要注意排序时的条件,还有输出格式

部分题目使用了快速排序

快速排序

简介

时间复杂度在O(N*logN)的排序,效率高。

具体实施方法:

分治法+挖数填坑(另类的冒泡)

先选好基准数(中间数),之后按照从两头到中间的顺序,将比其大的数放右边,小的放左边。完成一轮后,递归调用。

具体参考代码:

1. void quick_sort(int s[], int l, int r)  

2. {  

3.     if (l < r)  

4.     {   

5.         int i = l, j = r, x = s[l];  

6.         while (i < j)  

7.         {  

8.             while(i < j && s[j] >= x) // 从右向左找第一个小于x的数  

9.                 j--;    

10.             if(i < j)   

11.                 s[i++] = s[j];  

12.               

13.             while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数  

14.                 i++;    

15.             if(i < j)   

16.                 s[j--] = s[i];  

17.         }  

18.         s[i] = x;  

19.         quick_sort(s, l, i - 1);    

20.         quick_sort(s, i + 1, r);  

21.     }  

22. }  

参考:http://blog.csdn.net/morewindows/article/details/6684558

      http://www.cnblogs.com/cylee025/archive/2011/05/11/2043714.html

0 0