您的位置:首页 > 理论基础 > 数据结构算法

数据结构学习(八)、冒泡排序

2016-10-17 09:15 218 查看
冒泡排序基本思想:比较相邻的二个元素,前者比后者大,则交换二个元素。

#define MAXSIZE 20
typedef struct
{
int data[MAXSIZE] ,
int lenght
} SqList;

void BubbleSort(SqList *L)
{
int i,j;
for(i=0;i<L->length;i++){
for(j=L->length-1;j>=i;j--){
if(L->data[j]>L->data[j+1])
swap(L,j,j+1);
}
}
}

void swap(SqList *L,int i, int j)
{
int temp;
temp = L->data[i];
L->data[i] =  L->data[j];
L->data[j] = temp;
}


冒泡排序优化

当没有任何数据交换则说明序列有序,停止循环

void BubbleSort2(SqList *L)
{
int i,j;
Status  flag = true;
for(i =0 ; i<L->length && flag;i++){
flag = false;
for(j=L->length-1;j>=i;j--){
if(L->data[j]>L->data[j+1]){
swap(L,j,j+1);
flag = true;
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: