pxlt.net
当前位置:首页>>关于排序函数c语言的资料>>

排序函数c语言

#include<stdio.h>int *sort(){ int i,j,t; static int a[10]={2,5,9,3,4,7,6,5,6,3}; for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(a[j]>a[i])//将小的换到后面去,大的换到前面来 { t=a[j];a[j]=a[i];a[i]=t; } return a;}void main(){ int i; int *p; p=sort();//排序 printf("排序后的数组:\n"); for(i=0;i<10;i++)//输出排序后的数组 printf("%d ",p[i]);}运行结果:

运行程序,程序让你输入一组数字,(注:个数不能超过100个) 函数input接收你输入的数字放在数组data[100]里. 显示你输入的数字. 函数sort对这组数字进行从大到小的排列. 显示排序后的结果.

供参考……#include "stdio.h"//#include "string.h"//#include "stdlib.h"//?void taxis(int *a, int n, int *b){ int i,j,imax,x=0x80000000,*ptemp,ib=0; if(!(ptemp=(int *)malloc(n*sizeof(int)))){ printf("申请临时内存失败!\n"); exit(0); } memcpy((void *

冒泡排序法for(i=0;i<9-1;i++)//排八次就可以了for(j=0;j<9-i;j++)//外循环执行一次,内循环相应操作的数字少一个

用qsort函数即可..不过这个函数的用法 你还是要花一会时间看的..

最简单的就是选择排序法和冒泡排序,在C语言程序设计的书上能直接找到.

你要什么样的排序,这里是一个选择排序,请参考.#include <stdio.h>/* 选择排序 */ int sort(int *array, int n) { int i = 0, k = 0, j = 0; int t = 0; for(i = 0; i < n - 1; i++) { k = i; for(j = i + 1; j < n; j++) { if (*(array + k) > *(array + j)) k = j; if (k != i) { t = *(array + i);

在stdlib.h头文件中.有qsort() //快速排序 qsort函数,也就是快速排序算法,在C的库中,需加入头文件#include 或#include .调用qsort函数需要写cmp比较函数.给出按升序排列的例子:int cmp(const void* a, const void* b) //注意这里是int{return (int*)a - (int*)b;} 调用:qsort(a, n, sizeof(int), cmp);//a为数组,n为个数 如果需要按照自己的意愿排列,那么同样重写cmp比较函数,就可以完成,和sort函数类似.时间复杂度为O(n log n),但是某些情况要比sort函数好.

下面是C语言里面常用的三种排序方法,但愿对楼主有帮助,一、冒泡法(起泡法) 算法要求:用起泡法对10个整数按升序排序. 算法分析:如果有n个数,则要进行n-1趟比较.在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中

对数组中的10个元数前几个进行排序,安从小到大的顺序.设n=5如:10个元数是1,9,8,7,5i=1时.temp=v[1]=9;j=0 v[j]=v[0]=1;不符合循环条件,不做;i=2时.temp=v[2]=8;j=1 v[j]=v[1]=9;符合循环条件,做循环体;v[1]=8;v[2]=9;这时数组为1,8,9,7,5i=3时.temp=v[3]=7,j=2 v[j]=v[2]=9;符号循环条件.做循环体v[1]=7,v[2]=8,v[3]=9.数组为1,7,8,9,5.i=4时.做法是一样的最后结果为1,5,7,8,9不知道对不对,我是这么认为的

网站首页 | 网站地图
All rights reserved Powered by www.pxlt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com