1.算法思想
选择排序的算法思想是:每次从待排序的记录中选出排序码最小的记录,再在剩下的记录中选出次最小的记录,重复这个选择过程,直到完成全部排序
2.算法实现
sort.h
typedef int ElementType;
struct forSort
{
ElementType key;
};
typedef struct forSort ForSort;
void InitForSort(ForSort *FS,int a)
{
FS->key=a;
}
main.c
#include <stdio.h>
#include <stdlib.h>
#include "sort.h"
void DirectSelectSort(ForSort A[],int n)
{
int i,j,k;
ForSort temp;
for(i=0; i<n-1; i++)
{
k=i;
for(j=i+1; j<n; j++)
{
if(A[j].key<A[k].key)
{
//找出一个最小的K
k=j;
}
}
if(i!=k)
{
//交换位置
temp=A[k];
A[k]=A[i];
A[i]=temp;
}
}
}
int main()
{
int i;
int A[8]= {28,13,72,85,39,41,6,20};
DirectSelectSort(A,8);
for(i=0; i<8; i++)
{
printf("%d\n",A[i]);
}
return 0;
}