1. 选择排序没啥可说的 就是每次从待排序的序列区中找出一个最小的添加到有序序列区,待排序序列区减1,有序序列区加1。直接上代码
#include<stdio.h>
void swap(int *a,int *b){
int temp=*a;
*a=*b;
*b=temp;
}
int main(int argc, char const *argv[])
{
int a[]={2,1,3,5,4,7,9,8,6};
int temp;
for(int i=0;i<sizeof(a)/sizeof(a[0]);i++){
temp=a[i];
for(int j=i+1;j<sizeof(a)/sizeof(a[0]);j++){
if(a[j]<temp){
swap(&a[j],&temp);
}
}
a[i]=temp;
}
for(int i=0;i<sizeof(a)/sizeof(a[0]);i++){
printf("%d,",a[i]);
}
getchar();
}
2.效果:
3.封装一下:
#include<stdio.h>
void swap(int *a,int *b){
int temp=*a;
*a=*b;
*b=temp;
}
void selectsort(int a[],int length){
int temp;
for(int i=0;i<length;i++){
temp=a[i];
for(int j=i+1;j<length;j++){
if(a[j]<temp){
swap(&a[j],&temp);
}
}
a[i]=temp;
}
}
int main(int argc, char const *argv[])
{
int a[]={2,1,3,5,4,7,9,8,6};
selectsort(a,sizeof(a)/sizeof(a[0]));
for(int i=0;i<sizeof(a)/sizeof(a[0]);i++){
printf("%d,",a[i]);
}
getchar();
}
4.封装后的运行效果: