C语言 排序,定义double型数组a【10】,对数组元素按从小到大排序

求速解... 求速解 展开
 我来答
冰旋华影
2014-06-07 · TA获得超过549个赞
知道小有建树答主
回答量:673
采纳率:0%
帮助的人:289万
展开全部
#include<stdio.h>
int a[10]={2,1,4,5,6,3,9,8,0,7};
void sort(int left,int right)
{
    int Tleft,Tright;
int mid,temp;
Tleft = left; Tright = right;
mid=a[(left+right)/2];
do{
while(a[Tleft]<mid&&Tleft<right)
Tleft++;
while(mid<a[Tright]&&Tright>left)
Tright--;
if(Tleft<=Tright){
temp=a[Tleft];
a[Tleft]=a[Tright];
a[Tright]=temp;
Tleft++;
Tright--;
}
}while(Tleft<=Tright);
if(left<Tright) sort(left,Tright);
if(Tleft<right) sort(Tleft,right);
}
void main()
{
int i;
sort(0,9);
for(i=0;i<10;i++){
printf("%d\t",a[i]);
}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fdmove
2014-06-07 · 超过29用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:74.7万
展开全部
#include <stdio.h>
#define N 8

#define swap(array,x,y)\
{\
  int temp; \
  temp = array[x]; \
  array[x] = array[y]; \
  array[y] = temp; \
}

int array[N] = {5,3,6,2,9,7,4,1} ;

void sort_compare(int *array,int n)
{
 int i,j,*p=array;
 for(i=0;i<n-1;i++)
 {
  for(j=i+1;j<n;j++)
  {
    if(*(p+i) > *(p+j)) 
      swap(array,i,j);
  }
 }
}

void print_array(int *array,int n)
{
 int i;
 printf("\n\narray is :");
 for(i=0;i<n;i++)
 {
   printf("%d ",*(array+i));
 }
 putchar('\n');
 return ;
}

int main(int argc,char *argv[])
{
 print_array(array,N); 
 sort_compare(array,N);
 print_array(array,N); 
 return 0 ;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式