C语言怎样用数组把6个整型数按从小到大的顺序输出?
C语言实现将数组的六个元素按从小到大的顺序输出,可以采用内部排序算法对数组的元素进行排序,然后输出排序后的数组,就可以得到按从小到大的顺序输出。
以快速排序为例的排序代码:
void quickSort(int a[],int l,int r) {
if(l>=r)
return;
int i = l;
int j = r;
int key = a[l];//选择第一个数为key
while(i<j) {
while(i<j && a[j]>=key)//从右向左找第一个小于key的值
j--;
if(i<j) {
a[i] = a[j];
i++;
}
while(i<j && a[i]<key)//从左向右找第一个大于key的值
i++;
if(i<j) {
a[j] = a[i];
j--;
}
}
a[i] = key;
quickSort(a, l, i-1);//继续排左部分,递归调用
quickSort(a, i+1, r);//继续排右部分,递归调用
}
int main() {
int a[]= {12,4,132,55,46,232};//随机数组
int i,n = sizeof(a)/sizeof(a[0]);//获取数组大小
quickSort(a,0,n-1);//快速排序函数入口
for(i = 0; i < n; i ++)//输出排序后的结果
printf("%d ",a[i]);
return 0;
}
扩展资料:
排序算法的评价标准:
1、时间复杂度,即从序列的初始状态到经过排序算法的变换移位等操作变到最终排序好的结果状态的过程所花费的时间度量。
2、空间复杂度,就是从序列的初始状态经过排序移位变换的过程一直到最终的状态所花费的空间开销。
3、使用场景,排序算法有很多,不同种类的排序算法适合不同种类的情景,可能有时候需要节省空间对时间要求没那么多,反之,有时候则是希望多考虑一些时间,对空间要求没那么高,总之一般都会必须从某一方面做出抉择。
4、稳定性,稳定性是不管考虑时间和空间必须要考虑的问题,往往也是非常重要的影响选择的因素。
基本的内部排序:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、基数排序、堆排序。
参考资料来源:百度百科-排序算法
#include <stdio.h>
void main()
{
int a[5];
int i,j,t;
printf("请输入6个整数:");
for(i=0;i<6;i++)
scanf("%d",&a[i]);
for(i=1;i<6;i++)
for(j=1;j<=6-i;j++)
if(a[j-1]>a[j])
{
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
printf("排序后的结果:");
for(i=0;i<6;i++)
printf("%d \n",a[i]);
}