#include<stdio.h>
#include<iostream>
#define MAXL 100
typedef int KeyType;
typedef char InfoType;
typedef struct
{
KeyType key;
InfoType data;
}RecType;
void swap(RecType &x, RecType &y)
{
RecType temp;
temp = x;
x = y;
y = temp;
}
void CreateList(RecType R[], KeyType keys[], int n)
{
for (int i = 0; i < n; i++)
{
R[i].key = keys[i];
}
}
void Display(RecType R[], int n)
{
for (int i = 0; i < n; i++)
{
printf("%d", R[i].key);
}
printf("\n");
}
void BubbleSort(RecType R[], int n)
{
int i,j;
bool exchange;
for (i = 0; i < n-1; i++)//在完成倒数第二个数的比较后即完成了所有排序
{
exchange = false;
for (j = 0; j < n-1-i; j++)
{
if (R[j].key > R[j + 1].key)
{
swap(R[j], R[j + 1]);
exchange = true;
}
}
printf(" i=%d:排序结果:", i);
Display(R, n);
if (!exchange)//如果某一次循环比较中没有交换数据,说明现在已经完成了排序。
return;
}
}
int main()
{
int n = 10;
RecType R[MAXL];
KeyType a[] = { 3,7,4,2,8,1,9,0,5,6 };
CreateList(R, a, n);
printf("排序前:");
Display(R, n);
BubbleSort(R, n);
printf("排序后:");
Display(R, n);
system("pause");
return 1;
}
排序方法4---冒泡排序
最新推荐文章于 2021-02-26 11:41:34 发布