#include <string>
#include <time.h>
#include <stdlib.h>
//建立循序表的数据结构
typedef int ElementType;
typedef struct SequentialTable{
ElementType * Data;//通过指针储存数据
int Length;//要储存的数据个数
}Table ;
//建立循序表
void EnterElement(Table &List){
int Len;
printf("Please input the Length of data:");
scanf("%d",&Len);
List.Length=Len;
List.Data=(ElementType*) malloc(sizeof (ElementType)*List.Length);
srand(time(NULL));//随机数生成函数,便于测试。
for (int i = 0; i < List.Length; i++) {
List.Data[i]=rand()%100;
}
}
//输出函数
void PrintList(Table List){
for (int i = 0; i < List.Length; i++) {
printf("%3d",List.Data[i]);
}
printf("\n");
}
//排序函数
void SortingList(Table List){
for (int i = 0 ;i<List.Length ; ++i) {
bool Flag= true;//如果每一次都进行排序则为true否则为false
for (int j=List.Length-1; i<j ; --j) {
if (List.Data[j-1]>List.Data[j]){
ElementType Tmp;
Tmp=List.Data[j-1];
List.Data[j-1]=List.Data[j];
List.Data[j]=Tmp;
Flag= false;
}
}
if (Flag){//如果循环一次都不进行则表明数据是有序的,直接结束。
printf("The data has been sorted.\n");
return;
}
}
printf("The data sorting has been successful.\n");
}
int main() {
Table List;
EnterElement(List);
PrintList(List);
SortingList(List);
PrintList(List);
return 0;
}
C/C++冒泡排序
最新推荐文章于 2024-05-20 19:43:04 发布