#include<stdio.h>
#include<stdlib.h>
#define Status int
#define max 20
typedef struct {
Status key;
}ElemType;
typedef struct {
ElemType r[max];
int length;
}Sqlist;
void Inital(Sqlist &L) //初始化
{
L.r[1].key=49;
L.r[2].key=38;
L.r[3].key=65;
L.r[4].key=97;
L.r[5].key=76;
L.r[6].key=13;
L.r[7].key=27;
L.r[8].key=49;
L.length=8;
}
bool LT(int i,int j)
{
if(i<j)
return true;
else return false;
}
bool RT(int i,int j)
{
if(i>j)
return true ;
else return false ;
}
void selectsort(Sqlist &l) //直接选择排序
{
int i,j,k;
for(i=1;i<=l.length;i++) //表示排序的趟数
{
k=i;
for(j=i+1;j<=l.length;j++) //对未排序的数组中前后依次比较选出最小的一个
{
if(LT(l.r[j].key,l.r[k].key))
k=j;
if(k!=i) //交换元素
{
l.r[0]=l.r[k];
l.r [k]=l.r[i];
l.r[i]=l.r[0];
}
}
}
}
void print(Sqlist l)//输出
{
int i;
printf("排序后的结果为:");
for(i=1;i<=l.length;i++)
{
printf("%d ",l.r[i].key);
}
}
void main()
{
Sqlist l;
Inital(l);
selectsort(l);
print(l);
getchar();
getchar();
}
//算法分析:1.直接选择排序平均时间复杂度为O(n^2)
//2.直接选择排序是不稳定的
排序算法-------直接选择排序
最新推荐文章于 2021-03-02 23:19:56 发布