C语言中冒泡排序法和选择排序法有哪些不同

如题所述

第1个回答  推荐于2018-04-09
冒泡排序法是两两依次比较,并做交换,交换的次数多。
选择排序法是每次循环找出最值,循环结束后将最值调整到合适位置,交换的次数少。本回答被网友采纳
第2个回答  2017-12-14
选择法的语句错了,在交换数值那儿
第3个回答  2018-04-09
#include<stdio.h>
void print(int st[10]);
int main(void)
{
 int a[10]={88,12,5,-6,37,-90,0,27,46,13};
 int b[10]={88,12,5,-6,37,-90,0,27,46,13};
 int i,j;
 int temp,index;//排序法需要的变量。
 
 print(a);
 //冒泡排序(小到大) 
 for(i=0;i<9;i++)
 {
  for(j=i+1;j<10;j++)
  {
   if(a[i]>a[j])
   {
    a[i]=a[i]+a[j];
    a[j]=a[i]-a[j];
    a[i]=a[i]-a[j];
   }
  } 
 }
 print(a);
 
 //选择排序法(小到大)
 for(i=0;i<9;i++)
 {
  temp=b[i];
  index=i;
  for(j=i+1;j<10;j++)
  {
   if(temp>b[j])
   {
    temp=b[j];
    index=j;
   }
  }
  b[index]=b[i];
  b[i]=temp;
  } 
  print(b);
 
 return 0; 
}
void print(int st[10])
{
 int i;
 for(i=0;i<10;i++)
 {
  printf("%d\t",st[i]);
 }
 printf("\n");
}

冒泡的话边循环边交换,选择的话是循环找出最值,然后交换。

相似回答