C++有哪些比较大小的排序方法?

如题所述

各种排序算法

排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法
对算法本身的速度要求很高。
而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将
给出详细的说明。

参考资料:http://cn.codeof.com/articles/programming/vc/1011.htm
介绍了主流的7种排法,有基本实现代码。

一、排序的基本概念

排序:就是将记录按关键字递增(递减)的次序排列起来,形成新的有序序列,称为排序。设n个记录的序列为{R1,R2,…,Rn},其相应关键字序列为{K1,K2,…,Kn},需确定一种排序P1,P2,…,Pn,使其相应的关键字满足递增(升序),或递减(降序)的关系:
Kp1 £ Kp2 £ ...£ Kpn

Kp1 ³ Kp2 ³ … ³ Kpn

根据排序元素所在位置的不同,排序分: 内排序和外排序。

http://blog.csdn.net/phpme/archive/2006/06/22/820447.aspx

介绍了5种排法,有设计思想。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-03-29
很多呀..
按平均时间将排序分为四类:
(1)平方阶(O(n2))排序
一般称为简单排序,例如直接插入、直接选择和冒泡排序;
(2)线性对数阶(O(nlgn))排序
如快速、堆和归并排序;
(3)O(n1+£)阶排序
£是介于0和1之间的常数,即0<£<1,如希尔排序;
(4)线性阶(O(n))排序
如桶、箱和基数排序。
各种排序方法比较
简单排序中直接插入最好,快速排序最快,当文件为正序时,直接插入和冒泡均最佳。
影响排序效果的因素
因为不同的排序方法适应不同的应用环境和要求,所以选择合适的排序方法应综合考虑下列因素:
①待排序的记录数目n;
②记录的大小(规模);
③关键字的结构及其初始状态;
④对稳定性的要求;
⑤语言工具的条件;
⑥存储结构;
⑦时间和辅助空间复杂度等。
第2个回答  2007-03-29
和数据结构一样,选择,插入,堆,希尔,交换,还有就是外部排序了.......

几种经典排序算法优劣比较的C++程序实现
2.冒泡排序 (1)排序过程 冒泡排序的过程形如其名,就是依次比较相邻两个元素,优先级高(或大或小)的元素向后移动,直至到达序列末尾,无序区间就会相应地缩小。下一次再从无序区间进行冒泡操作,依此循环直至无序区间为1,排序结束。(2)实现代码 \/\/冒泡排序法 template void Sort::BubbleSort...

怎样用C++语言编写比较大小的语句,如果能提供范例那最好了
任意数目懂得数字比较大小,c++最经典的算的上是冒泡法了吧,以按从大到小的顺序排列为例,具体思想是将这个数的最大的数“冒”出来放在第一个位置,再将其次大的数“冒”到第二个位置,依次下去,直到结束,这里就需要一个双重循环就可以了。代码如下:include<iostream> using namespace std;void ...

请问C++中两个字符串的大小是怎样比较的?
C++中两个字符串的大小比较方法如下:1、首先,定义一个整型变量j,保存判断的结果。2、接着,定义两个字符串变量,保存判断的字符串。3、输入两个字符串,保存在变量s1和s2中。4、比较字符串s1和s2的大小,保存在变量j中。5、根据判断结果j的值,输出两个字符串的比较结果。6、用compare函数比较...

C++有哪些比较大小的排序方法?
一、排序的基本概念 排序:就是将记录按关键字递增(递减)的次序排列起来,形成新的有序序列,称为排序。设n个记录的序列为{R1,R2,…,Rn},其相应关键字序列为{K1,K2,…,Kn},需确定一种排序P1,P2,…,Pn,使其相应的关键字满足递增(升序),或递减(降序)的关系:Kp1 £ Kp2 £ ...&...

C++三个数比大小
首先用scanf获取输入的三个double型变量,存入arr数组。然后利用冒泡排序法将数组进行排序。冒泡排序法:遍历数组第0到N-1个元素,依次比较相邻的两个元素,使较大的那个向前移。示例代码如下:include <iostream>using namespace std;int main(){ int a, b, c; cin >> a >> b >> c;\/\/输入...

C++编程:输入三个整数,并按大小顺序输出
C++编程中的一个常见任务是处理整数的排序。当需要输入三个整数a、b和c,然后按从小到大的顺序输出时,可以使用以下逻辑来实现:首先,比较a和b,如果a小于b(ab成立),则判断b和c的大小。如果b大于c(bc成立),说明c是当前最小值,b是中间值,a是最大值。否则,如果a大于c(ac成立),则b是...

如何用c++比较四个数的大小用函数方式实现
比较少量数的大小,可以用条件语句实现,但是比较大量的数的大小,适宜使用排序的方法。将四个数,读入一个数组,然后对该数组排序,最后输出该数组即可。

c++比较几个数的大小
从键盘上任意输入n个整数,用冒泡法按从小到大地排序,并在屏幕上显示出来。*\/ include "stdio.h"define NUM 10 \/*定义符号常量(数据个数N)*\/ main(){ int data[NUM]; \/*定义1个1维整型数组data*\/ int i,j,temp; \/*定义循环变量和临时变量*\/ printf("Please input 10 numbers:\\n...

C++中如何比较5个数的大小
\/\/冒泡法 include<iostream.h> include<stdio.h> int main (){ int a[5];int i,j,t;cout<<"input 5 numbers:"<<endl;for(i=0;i<5;i++)cin>>a[i];cout<<endl;for(j=0;j<4;j++)for(i=0;i<4-j;i++)if(a[i]>a[i+1]){ t=a[i];a[i]=a[i+1];a[i+1]=t...

比较几个数大小的c++程序写法
{ int i,j,t;for(i=0;i<4;i++){ for(j=i+1;j<5;j++){if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}} } for(i=0;i<5;i++)cout<<a[i]<<" ";} 这个是冒泡法从大到小排序,排序的个数你可以自己订,我写的是5个,你想变的话把数组的长度变一下就行了。

相似回答