C语言用选择法排序

已知一组数据如下:6,3,42,23,35,71,98,67,56,38,将它们存入数组,用选择法对其进行排序。要求显示排序前后的数据情况,且循环结构中的数组下标应从0开... 已知一组数据如下:6,3,42,23,35,71,98,67,56,38,将它们存入数组,用选择法对其进行排序。要求显示排序前后的数据情况,且循环结构中的数组下标应从0开始。
希望可以用简单一点的语句,本人初学者
展开
 我来答
never715
推荐于2016-08-16 · TA获得超过942个赞
知道小有建树答主
回答量:1010
采纳率:84%
帮助的人:456万
展开全部

#include <stdio.h>

void select_sort(int *x, int n);

void main(void)

{

 int a[]={6,3,42,23,35,71,98,67,56,38};

 

 for(int i=0;i<10;i++)

  printf("%-5d",a[i]);

 

 printf("\n");

 select_sort(a,10);

 

 for(int j=0;j<10;j++)

  printf("%-5d",a[j]);

}

void select_sort(int *x, int n)

{

 int i, j, min, t;

 

 for (i=0; i<n-1; i++) /*要选择的次数:0~n-2共n-1次*/

 {

  min = i; /*假设当前下标为i的数最小,比较后再调整*/

  for (j=i+1; j<n; j++)/*循环找出最小的数的下标是哪个*/

  {

   if (*(x+j) < *(x+min))

   {   

    min = j; /*如果后面的数比前面的小,则记下它的下标*/

   }

  }  

  

  if (min != i) /*如果min在循环中改变了,就需要交换数据*/

  {

   t = *(x+i);

   *(x+i) = *(x+min);

   *(x+min) = t;

  }

 }

}

1024程序员
2020-03-26 · TA获得超过374个赞
知道答主
回答量:457
采纳率:0%
帮助的人:22.9万
展开全部

C语言经典例子之选择法排序

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式