acm结构体与排序详解
2016-06-25 16:24
239 查看
结构体是c语言里面最基本的东西,这里不再赘述。不懂得同学请看一下c语言课本。也可以参考一下下面的讲解:
http://blog.csdn.net/xiaoyali/article/details/4393486
其实,现在你只要能看懂这个代码,就已经足够了,结构体就是这么easy~~~
我来解释一下:定义了一个类名为note 的结构体,以及它的成员变量。并且声明了几个note类型的变量。
下面我们通过一个具体的小程序来辅助理解一下:
程序功能:给结构体变量赋值,并且输出指定的结构体变量。
代码如下:
运行结果:
结构体就说这么多,如果还有不懂的同学去问度娘吧~~
下面进入我们这次训练的重点部分:排序
在不远的将来随着大家越来越厉害,裸的排序题目基本上是不会再见到了,但是纵观各种acm题目,绝大多数的
题目都还是对排序有着比较广泛的应用的。这时候的排序就化身于各种程序代码的一些小的部分。除此之外,各种排
序的思想亦可以用在其他的算法实现过程中,所以我们今天所讲的绝不单单是排序,更重要的还是领悟排序的思想,
在现阶段把基础打好!
排序的方法有:基数排序O(n)、冒泡排序、选择排序、插入排序、堆排序O(nlogn)、希尔排序(小于
O(n*n))、归并排序O(nlogn)、快速排序O(nlogn)这八大排序方法,各种方法的实现都各有不同但是思想各
有千秋,某些排序之间还存在着些许关系~~学完数据结构之后这些方法我们都是得掌握的= =,下面这篇博客将各类
型的排序方法讲解的非常详细:http://blog.csdn.net/hguisu/article/details/7776068
作为一个竞赛的acmer,我们在竞赛中要掌握的东西却与这八大排序并无关系= =,我们要学会的仅限于sort函数
的使用以及如何编写排序函数。快速排序是我们的今后在比赛中使用的排序方法,它的实现炒鸡容易(主要是c++库
函数有= =),代码量少,从时间复杂度上相比于其他的排序算法是最优的。
头文件:
#include <algorithm>
using namespace std;
1、默认的sort函数是按升序排。
当然,降序排序也非常简单~~
2、当然也可以自己写一个cmp函数,按特定意图进行排序。
例如:
也可以对结构体进行排序。(见代码示例)
另外,对于自定义排序我们也可以在结构体中重载小于号,现阶段我们还没有深入了解c++,在课件里就不讲了。
下面给出代码示例:
运行结果:
3.
如果我们要按照字符串排序怎么办呢?
运行结果:
以上就是讲解排序的所有内容。
http://blog.csdn.net/xiaoyali/article/details/4393486
其实,现在你只要能看懂这个代码,就已经足够了,结构体就是这么easy~~~
我来解释一下:定义了一个类名为note 的结构体,以及它的成员变量。并且声明了几个note类型的变量。
下面我们通过一个具体的小程序来辅助理解一下:
程序功能:给结构体变量赋值,并且输出指定的结构体变量。
代码如下:
运行结果:
结构体就说这么多,如果还有不懂的同学去问度娘吧~~
下面进入我们这次训练的重点部分:排序
在不远的将来随着大家越来越厉害,裸的排序题目基本上是不会再见到了,但是纵观各种acm题目,绝大多数的
题目都还是对排序有着比较广泛的应用的。这时候的排序就化身于各种程序代码的一些小的部分。除此之外,各种排
序的思想亦可以用在其他的算法实现过程中,所以我们今天所讲的绝不单单是排序,更重要的还是领悟排序的思想,
在现阶段把基础打好!
排序的方法有:基数排序O(n)、冒泡排序、选择排序、插入排序、堆排序O(nlogn)、希尔排序(小于
O(n*n))、归并排序O(nlogn)、快速排序O(nlogn)这八大排序方法,各种方法的实现都各有不同但是思想各
有千秋,某些排序之间还存在着些许关系~~学完数据结构之后这些方法我们都是得掌握的= =,下面这篇博客将各类
型的排序方法讲解的非常详细:http://blog.csdn.net/hguisu/article/details/7776068
作为一个竞赛的acmer,我们在竞赛中要掌握的东西却与这八大排序并无关系= =,我们要学会的仅限于sort函数
的使用以及如何编写排序函数。快速排序是我们的今后在比赛中使用的排序方法,它的实现炒鸡容易(主要是c++库
函数有= =),代码量少,从时间复杂度上相比于其他的排序算法是最优的。
头文件:
#include <algorithm>
using namespace std;
1、默认的sort函数是按升序排。
sort(a+l,a+r);//表示排序a[]数组且从a[l]到a[r-1]升序排序。
当然,降序排序也非常简单~~
sort(a+l,a+r,greater<int>());//表示排序a[]数组且从a[l]到a[r-1]降序排序。
2、当然也可以自己写一个cmp函数,按特定意图进行排序。
例如:
int cmp( int a, int b ) { return a > b ; } sort(a,a+n,cmp);是对数组a降序排序
也可以对结构体进行排序。(见代码示例)
另外,对于自定义排序我们也可以在结构体中重载小于号,现阶段我们还没有深入了解c++,在课件里就不讲了。
下面给出代码示例:
运行结果:
3.
如果我们要按照字符串排序怎么办呢?
运行结果:
以上就是讲解排序的所有内容。
相关文章推荐
- ##人生第一次在csdn发表博客##
- 第一个oc程序,关于创建对象,声明,点语法,self关键字
- OC内存管理(一)
- xml解析与将数据写到xml中
- 大二是否应该出去实习?
- 图的有关操作
- hdu3652(数位dp)
- light oj 1032(数位dp)
- poj2817(状态压缩dp基础题)
- poj2771(二分图,最大独立集)
- poj2195(二分图最大匹配,最小费用流)
- 二分图匈牙利算法模板
- hdu1151(二分图最大独立集)
- hdu1045(二分图)
- hdu5090(二分图,建图技巧)
- hdu1150(二分图最小顶点覆盖)
- cf 659E(强连通分量,判断无向图是否成环,拓扑排序思想)
- 求割边模板(tarjan)
- 谷歌2014面试题 Problem E. Spaceship Defence(spfa,哈希)
- 太空飞行计划问题(最大流)