問題解決了嗎
給妳提供兩種排序方式,希望幫到妳,看程序:
#include<stdio.h>?#include<string.h>?
void?bubble(int?*a,int?n);?//?冒泡法,?定義兩個參數:數組首地址與數組大小
void?choise(int?*a,int?n);?//?選擇法,排序?
int?main()?
{
int?a[11]={1,5,6,8,4,2,10,56,20,55};? int?i; printf("\n冒泡排序\n");? bubble(a,10);for(i=0;i<10;i++)?
printf("%d?,",a[i]);? printf("\n選擇排序\n");? choise(a,10);for(i=0;i<10;i++)?
printf("%d?,",a[i]);? }void?bubble(int?*a,int?n)//?冒泡法,排序?定義兩個參數:數組首地址與數組大小
{?
int?i,j,temp;?
for(i=0;i<n-1;i++)?
for(j=i+1;j<n;j++)?//?註意循環的上下限
if(a[i]>a[j])?
{?
temp=a[i];?
a[i]=a[j];?
a[j]=temp;?
}?
}?
void?choise(int?*a,int?n)?//?選擇法,排序?
{?
int?i,j,k,temp;?
for(i=0;i<n-1;i++)?
{?
k=i;/*給記號賦值*/?
for(j=i+1;j<n;j++)?
if(a[k]>a[j])?
k=j;/*是k總是指向最小元素*/?
if(i!=k)?
{?/*當k!=i是才交換,否則a[i]即為最小*/?
temp=a[i];?
a[i]=a[k];?
a[k]=temp;?
}?
}?
}