结构体是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函数是按升序排。
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.
如果我们要按照字符串排序怎么办呢?
运行结果:
以上就是讲解排序的所有内容。