#include<stdio.h>
#include<stdlib.h>
#define max 15
typedef struct list
{
int data[max];
int length;
}list;
void putlist(list s)//输出顺序表的内容
{
int i;
for(i=0;i<=s.length-1;i++)
{
printf("%4d",s.data[i]);
}
}
//几种比较简单的排序算法:冒泡(稳定),选择 (不稳定)
void maopao(list &s)
{
int i,j,temp;
for(i=0;i<=s.length-2;i++)//循环s.length-1次
{
for(j=0;j<=s.length-2-i;j++) //每一轮找出一个最大的放到末尾
if(s.data[j]>s.data[j+1])
{
temp=s.data[j];
s.data[j]=s.data[j+1];
s.data[j+1]=temp;
}
}
printf("\n冒泡排序后的顺序表内容为:\n");
putlist(s);
}
void xuanze(list &s)
{
int i,j,temp,t;
for(i=0;i<=s.length-2;i++)
{
t=i;
for(j=i+1;j<=s.length-1;j++)
{
if(s.data[t]>s.data[j]) //找到待排序表中最小的下标
t=j;
}
if(t!=i)
{
temp=s.data[i];
s.data[i]=s.data[t];
s.data[t]=temp;
}
}
printf("\n选择排序后的顺序表内容为:\n");
putlist(s);
}
void initlist(list &s) //对顺序表进行随机赋值初始化
{
int i,j;
s.length=max;
for(i=0;i<=s.length-1;i++)
{
s.data[i]=rand()%20;
}
printf("顺序表初始化成功!\n");
}
int main()
{
list s;
initlist(s);
printf("初始化顺序表内容为:\n");
putlist(s);
// maopao(s);
xuanze(s);
return 0;
}
简单排序算法代码:冒泡和选择
最新推荐文章于 2023-05-28 03:21:15 发布