求C语言编程编写函数sort:对数组a中的数进行从小到大排序

如题所述

我介绍两种排序方法吧
1 选择排序
void sort(int a[ ],int length) /* 这个数组数据类型你可以自己更改 float 也可以 不过其他的也要相应的改 比如%d改为%f等,length 为数组长度*/
{int *p,temp,i=0,*min;
while(i<length)
{ min=&a[i];

for(p=a+i;p<a+length;p++)
{if(*p<*min)
{temp=*min;
*min=*p;
*p=temp;
}
}
i++;
}
}
选择排序法就是把数组的最小的元素找的然后放到数组的最前面 就是第一小的放到最前面 然后继续从后面找在最小的放到剩下元素的最前面 一直循环直到最后一个
2 冒泡排序
void sort(int a[],int length)
{int *p=a,*q=a+1,temp;
for(p=a;p<a+length-1;p++)
for(q=p+1;q<a+length;q++)
if(*p>*q)
{temp=*p;
*p=*q;
*q=temp;
}
}
冒泡排序是把上下两个元素比较 然后小的就换到上面去 第一次是最小的 然后是第二小的 依次类推 直到最后
很形象 冒泡 呵呵
这是我写的一个测试程序 你运行一下吧
#include<stdio.h>
#include<conio.h>
void sort(int a[],int length);
main()
{int a[3]={3,2,1},i;
clrscr();/*清屏函数 要打开头文件conio.h*/
for(i=0;i<3;i++)
printf("%d ",a[i]);
printf("\n");
sort(a,3);
for(i=0;i<3;i++)
printf("%d ",a[i]);
printf("\n");
}

/*把sort函数定义写在这*/

在上面加一任意一个sort函数 不能加两个啊 c不支持函数重载的
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-02
我把数组啊设置为你自己输入,那样使用更广泛,要是固定,就就设置数组的值就可以了。
#include<conio.h>
main(){
int i,j,t;
int a[10];
printf("please input 10 number:" );
for(i=0;i<10;i++){
scanf("%d",&a[i]);
}
printf("big to small\n");
for(i=0;i<10;i++){ /*从大到小排序*/
for(j=i+1;j<10;j++){
if(a[i]<a[j]){
t=a[i];a[i]=a[j];a[j]=t;
}
}
}
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
printf("\nsmall to big\n");
for(i=0;i<10;i++){ /*从小到大排序*/
for(j=i+1;j<10;j++){
if(a[i]>a[j]){
t=a[i];a[i]=a[j];a[j]=t;
}
}
}
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
getch();
}本回答被提问者采纳
第2个回答  2010-05-20
百度百科啊
void bubble_sort(int a[],int n)
{
int i = n-1;
bool change = true;
for (; i>=1&&change; --i)
{
change = false;
for (int j = 0; j<i; ++j)
{
if (a[j]>a[j+1])
{
int nTemp = a[j+1];
a[j+1] = a[j];
a[j] = nTemp;
change = true;
}
}
}
}

调用示例:
main()
{
int array[] = {1,2,3,4,5,6};
bubble_sort(array,6);
}

求C语言编程编写函数sort:对数组a中的数进行从小到大排序
1 选择排序 void sort(int a[ ],int length) \/* 这个数组数据类型你可以自己更改 float 也可以 不过其他的也要相应的改 比如%d改为%f等,length 为数组长度*\/ {int *p,temp,i=0,*min;while(i<length){ min=&a[i];for(p=a+i;p<a+length;p++){if(*p<*min){temp=*min;min=*...

求解C语言程序设计题:编写函数用选择排序法对数组中的数据进行从小到...
void sort(int a[], int n){ int i, j, t;for(i = 0; i < n - 1; i++)for(j = i + 1; j < n; j++)if(a[i] > a[j]){ t = a[i]; a[i] = a[j]; a[j] = t;} }

用c语言编程编写一个函数,用冒泡法对主函数中的一个数组进行从小到大的...
int a[ ]={36,77,2,9,44} sort(a);}

C语言程序题:写一函数sort(int a,int n)实现对数组a的排序,求各位大佬...
函数代码如下:void sort(int a[], int n){int i, j, m;int temp; for(i = 0; i < n -1; i++){m = i;for(j = i + 1; j < n; j++){if(a[j] < a[m])m = j;}if(m != i){temp = a[i];a[i] = a[m];a[m] = temp;}}}整个测试如下:include <stdi...

C语言怎样给一个数组中的数从大到小排序
\/\/前十个数的排序 for(i=1; i<=10; ++i)printf("%d ",a[i]);printf("\\n");printf("Input a new number: ");scanf("%d",&a[11]);for(i=10; i>0; --i)if(a[i+1]>a[i]){ int t=a[i];a[i]=a[i+1];a[i+1]=t;} else break;\/\/11个数的排序 for(i=1...

C程序 sort函数
C语言中没有预置的sort函数。如果在C语言中,遇到有调用sort函数,就是自定义的一个函数,功能一般用于排序。一、可以编写自己的sort函数。如下函数为将整型数组从小到大排序。void sort(int *a, int l)\/\/a为数组地址,l为数组长度。{ int i, j;int v;\/\/排序主体 for(i = 0; i < l - ...

C语言. .编写一个Sort函数,完成对整型数组元素升序排列。
include <stdio.h>void sort(int a[], int n) {\/\/选择排序int i,j,k,t;for(i = 0; i < n - 1; ++i) {k = i;for(j = k + 1; j < n; ++j) {if(a[k] > a[j]) k = j;}if(k != i) {t = a[i];a[i] = a[k];a[k] = t;}}}int main() {int ...

C语言:用选择排序法对一个数组里的数进行排序,从小到大,要求选出小的...
} Sort(a, n);for(j=0; j<n; j++){ printf("%d",a[ij);\/\/输出的内容就是排序好了的 }\/\/下面方法是用来排序的 void Sort(int *a, int n){ int i, j, temp;for(i=0; i<n; i++){ for(j=i; j<n; j++){ if(a[i] > a[j]){ temp = a[i];a[i] = a[j]...

...sort(float a[ ],int n)功能为对数组a中的n个数进行升序排列?_百度...
include<stdio.h> float sort(float a[],int n){ float t;for(int i=0;i<n;i++)for(int j=0;j<n-1-i;j++)if(a[j]>a[j+1]){ t=a[j];a[j]=a[j+1];a[j+1]=t;} for(int i=0;i<n;i++)printf("%.f ",a[i]);} int main(){ float a[20]={12,0,63...

...编写函数用冒泡排序法对数组中的数据进行从小到大的排序。
1、新建一个163.php。2、输入php网页的结构(<?php?>)。3、声明PHP与浏览器交互的文件类型和编码。4、使用 array() 函数定义一个$numbers数组。5、使用 sort() 函数对数组 $numbers 中的元素进行排序。6、使用 print_r() 函数,输出排序后的数组。7、运行网页,在浏览器中输出排序后的数组。

相似回答