交换排序和选择排序回顾
学习内容:
标题:交换排序:及每次与数组后一位里的数据进行比较,若后一位大于本位里面的数据则进行交换直至对比完整个数组,效率较低。
参考代码
#include<stdio.h>
void main(){
int a[5]={2,1,5,4,3};
int i,j,k,temp;
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(i=0;i<5;i++)
{
printf("%d",a[i]);
}
}
选择排序法:与交换排序不同的是,选择排序是每次记录下数组之中最大数的位置在用此时a[i]的值与他进行交换,效率上高于交换排序法。
参考代码:
#include<stdio.h>
void main(){
int a[5]={2,1,5,4,3};
int i,j,k,temp;
for(i=0;i<5;i++)
{
k=i;
for(j=i+1;j<5;j++)
{
if(a[j]>a[k]){
k=j;//记录下最大数的下标位置
}
if(k!=i)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
for(i=0;i<5;i++)
{
printf("%d",a[i]);
}
}