#include<stdio.h>
void print(int st[10]);
int main()
{
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");
}
选择排序:
void select_sort(int a[],int n) //传入数组的要排序的元素个数
{int i,j,min,t;
for(i=0;i<n-1;i++)
{ min=i; //min:当前最小值下标
for(j=i+1;j<n;j++) //扫描余下的部分
if(a[min]>a[j]) //若有其它元素更小,就记录其下标
min=j;
if(min!=i) //保若最小值不在排序区首位,就换到首位
{t=a[min]; a[min]=a[i]; a[i]=t;}
}
}
冒泡排序:
void bubble_sort(int a[], int n) //传入数组的要排序的元素个数
{ int i, j, t;
for (j=0; j<n-1; j++) //n个元素比较n-1轮
for (i= 0; i<n-1-j;i++) //比较相信的两个数
if(a[i]>a[i+1]) //若大小顺序不符,就交换
{t=a[i]; a[i]=a[i+1]; a[i+1]=t;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。