#include<iostream> //引入库
using namespace std; //using namespace std与#include<iostream>共同使用,调用cout cin函数
typedef struct Person //定义顺序表的存储数据
{
string key;
int n;
}Person;
typedef struct Data //定义顺序表
{
Person *P = new Person[50]; //为顺序表分配一个容量为50的数组空间 数组指针指示顺序表的基地址
int length=0; //初始长度为0
}Data;
void InitData(Data &d) //对顺序表进行初始化
{
string a[12] = { "a","b","c","d","e","f","g","h","i","j","k" };
int b[12] = {62,23,28,45,77,19,50,60,18,90,66,43 };
for (int i = 0;i < 11;i++)
{
d.P[d.length].key = a[i];
d.P[d.length].n = b[i];
d.length++; //通过数组下标增加存储数据
}
}
void Bubble_Sort(Data &d) //冒泡排序
{
for(int i=0;i<d.length-1;i++) //比较趟数
for (int j = 0;j < d.length-1- i;j++) //每一趟两两比较
{
if (d.P[j].n > d.P[j + 1].n) //若前一项大于后一项,两两交换 ,直至这一趟比较完
{
Person p = d.P[j];
d.P[j] = d.P[j + 1];
d.P[j+ 1] = p;
}
}
}
void Print(Data &d) //输出顺序表
{
for (int i = 0;i <=d.length-1;i++)
{
cout << d.P[i].key << " " << d.P[i].n << endl;
}
}
int main() {
Data d; //定义顺序表基地址
InitData(d); //调用函数初始化
Print(d);
cout << "冒泡排序后的结果" << endl;
Bubble_Sort(d); //调用冒泡排序
Print(d);
system("pause"); //暂停运行结果
}
数据结构-冒泡排序
最新推荐文章于 2022-03-26 17:29:17 发布