[C语言编程题编一个排序函数啊!]例子,下面是冒泡排序代码: token[] = { 6, 2, 5, 8, 4, 3, 7 }; for (int r = 0; r < count - 1; r++)//比较的轮数 { //次数:元素总数-当前轮数 r+1 for (int c = 0; c < int...+阅读
从程序运行需要的时间和储存空间来看,这两个吧,选择排序用的时间较少。我给你举个例子,这是一个比较直观的例子: 有十个数:10,9,8,7,6,5,4,3,2,1 。将他们按从小到大的顺序排成一列,用这两种方法的区别在于如下过程中:
1、 冒泡排序: 外层循环一共进行9次,第一次将10排到最后,这一步要经很9步交换,即将10依次和9,8,7……交换,成为如下顺序:9,8,7,6,5,4,3,2,1,10;接着第二次将9排到倒数第二,这一步要经过8步交换,变成如下顺序:8,7,6,5,4,3,2,1,9,10;同理执行共九大步,即可将它们最终排成1,2,3,4,5,6,7,8,9,10。 从这个过程可以看到,这种方法在这个过程中一共进行了9+8+7+6+5+4+3+2+1=45次比较和交换。
2、 选择排序: 外层也要经过9次大步,但是不用交换45次.首先要假定一个最大量假设是第一个,并用max标记,第一次,将10依次和9,8,7,6,5,4,3,2,1进行比较,但是只是和1进行了一次交换,这时数列成了:1,9,8,7,6,5,4,3,2,10;第二次:将1和9比较,发现9比较大,那么将9暂时定为最大max,再依次和8,7,6,5,4,3,2比较,最后发现9最大,就把9和倒数第二个位置上的2交换,这一大步共进行了两次交换;依次执行下去,后面每大步进行了两次交换,可以看出,一共进行了1+2+2+2+2+2+2+2+1=16次交换,但是也进行了45次比较。 从上面两种可以看出,这两个方法选择排序更高速,但是某些数据可能使得冒泡排序更高速,即交换次数较少,可以看出算法快慢和数据还是有一定关系的。 至于代码,我写了一个选择排序法的,c++环境运行通过: 请将下面代码复制粘贴到程序写入窗口,按下Ctrl+A全选后,按下Alt+F8即可自动对齐格式: #include#include/*包含时间函数,以便作为随机数种子*/ #include/*包含产生随机数的文件*/ void main() { int i,j,temp,max; int a[10]; srand((unsigned)time(NULL));/*作用是可以每次产生不一样的随机数*/ for(i=0;i
以下为关联文档:
C语言中运算符优先级排序1级优先级 左结合() 圆括号 [] 下标运算符 ->指向结构体成员运算符 . 结构体成员运算符 2级优先级 右结合 ! 逻辑非运算符 ~ 按位取反运算符 ++ 前缀增量运算符 -- 前缀增量运...
用C语言的函数做冒泡法排序#include #define M 10 void Bubble(int a[]) { int t; for(int i=0;ifor(int j=i+1;jif(a[j]>a[i]) { t=a[j]; a[j]=a[i]; a[i]=t; } for(i=0;icout} void main() { int a[...
急需一个用C语言函数写的冒泡排序法最好是可以排数字也可以排字#include #include void mao_pao(int *a,int n) { int i,j,temp,flag; for(i=0;i{ flag=0; for(j=0;j{ if(a[j]>a[j+1]) { flag=1; temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; }...
C语言冒泡排序算法要用函数从小到大排序 void paixu(double a[],int N) { double temp; int i,j; for(i=0;i<N;i++) { for(j=i+1;j<N-i;j++) { if(a[i]>a[j]) {temp=a[i];a[i]=a[j];a[j]=temp;} } } }...
小学数学位置与排序教案活动目标: 1、按规律进行数列推理(如:根据物体符号排序) 2、通过实际操作,获得有关容积守恒的经验。 3、培养幼儿对数学活动的兴趣 活动准备:课件、操作学具。 活动过程: 一、导入:...
如何让宝宝学会有规律的排序如何让宝宝学会有规律的排序?首先排序就是根据一组物体的某一差异,接顺序进行排列,最初的排序活动表现在物体的大小、长短的比较上。在宝宝能够分辨物体的一些特征之后,她的大脑...
C语言二维数组的排序问题不是 这么说吧,数组名本身就是指针,指向数组的第一个元素 至于你所说的调用调用二级(二维吧)数组,难道不是如普通变量般直接调用吗? 根据问题补充说,这是不允许的,main()函数的形参是...
啄气球看图排序故事教案幼儿园教案:许多许多的刺 教师:屈老师 活动目标: 1、理解故事情节,熟悉作品中的主要对话,丰富词汇:"噘"、"甩"、"叼"、"打个滚"。 2、感受作品中主人公接纳同伴、喜欢同伴的情感。 活动准...
C语言简单程序冒泡排列第一 第二5261个for循环不对 应该用for(i=0;i<6-j;i++) 第二 你判断也不对,照你的判断,t=a[i]; a[i+1]=a[i] ; a[i+1]=t; a[i+1]被覆盖掉了,不再有a[i+1]这个值 还有,你4102的冒...