思想:选择排序是指在数组A[n]中,刚开始有序数组中个数为0,首先遍历整个数组,找到最小的数跟A[0]交换
有序数组长度增加1.第二步从A[1]遍历到A[n],找出最小的数跟A[1]交换,如此反复直到第n-1个数。最后只剩
一个数,不用比较了。所以n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。
选择排序初级版本
#include <stdio.h>
#define N
void SelectSort(int *arr);
void main()
{
}
void SelectSort(int *arr)
{
}
///选择排序优化版/
#include <stdio.h>
#define N
void SelectSort(int *arr);
void main()
{
}
void SelectSort(int *arr)
{
}
#include <stdio.h>
/*
选择排序极其优化
要求120s写出来
*/
void selectSort(int *a,int len)
{
int k;
for(int i=1;i<len;i++)
{
k=i-1;
for(int j=i;j<len;j++)
{
if(a[j]<a[k])
{
k=j;
/*
int temp=a[j];
a[j]=a[i];
a[i]=temp;*/
}
}
if(k!=(i-1)){
int temp = a[i-1];
a[i-1]=a[k];
a[k]=temp;
}
}
for(int i=0;i<len;i++){
printf("%d ",a[i]);
}
}
int main()
{
int a[]={9,8,7,6,5,4,3,2,1,10};
selectSort(a,10);
}