选择排序之简单选择排序

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
typedef int ElemType;
typedef struct{
ElemType *elem;
int TableLen;
}SSTable;
void ST_Init(SSTable &ST,int len)//申请空间,并进行随机数生成
{
ST.TableLen=len;
ST.elem=(ElemType *)malloc(sizeof(ElemType)*ST.TableLen);
int i;
srand(time(NULL));
for(i=0;i<ST.TableLen;i++)
{
ST.elem[i]=rand()%100;
}
}
void ST_print(SSTable ST)
{
for(int i=0;i<ST.TableLen;i++)
{
printf("%3d",ST.elem[i]);
}
printf("\n");
}
void swap(ElemType &a,ElemType &b)
{
ElemType tmp;
tmp=a;
a=b;
b=tmp;
}

void SelectSort(int *A,int len){
int i,j;
for(i=0;i<len-1;i++){
int min;
min = i;
for(j=min+1;j<len;j++){
if(A[j]<A[min]){
min = j;
}
}
swap(A[min],A[i]);
}
}

//选择排序
int main()
{
SSTable ST;
ST_Init(ST,10);//初始化
ST_print(ST);
SelectSort(ST.elem,10);
ST_print(ST);
return 0;
}
posted @ 2023-08-25 15:28  00紫  阅读(13)  评论(0)    收藏  举报