c语言排序算法冒泡,排序算法——冒泡算法(C语言版)

/*在sort.h文件定义用于排序的顺序表结构,如下:*/

sort.h

#define MAXSIZE 10

#define true 1

#define false 0

typedef int Status;

typedef struct

{

int r[MAXSIZE +1];/*r[0]用作哨兵或临时变量(目前还没有用到此变量的作用)*/

int length;

}SqList;

/*因在排序中大量用到的操作是数组元素的交换,将其写成函数*/

swap.c

void swap(SqList *L, int i, int j)

{

int temp = L->r[i];

L->r[i] = L->r[j];

L->r[j] = temp;

}

/*在讲解正真冒泡算法之前,首先看一下简单的交换排序算法*/

Bubble_Sort0.c

void Bubble_Sort0(SqList *L)

{

int i, int j;

for(i=1; ilength; i++)

{

for(j=i; j<=L->length; j++)

{

if(L->r[i] > L->r[j])

{

swap(L, i, j);

}

}

}

}

/*真正的冒泡排序算法*/

Bubble_Sort1.c

void Bubble_Sort1(SqList *L)

{

int i, int j;

for(i=1; ilength; i++)

{

for(j=L->length-1; j>=i; j++)

{

if(L->r[j]>L->r[j+1])

{

swap(L, j, j+1);

}

}

}

}

/*冒泡排序算法的优化*/

void Bubble_Sort2(SqList *L)

{

int i, int j;

Status flag = true;

for(i=1; ilength&&flag = true; i++)

{

flag =false;

for(j=L->length-1; j>=i; j--)

{

if(L->r[j]>L->r[j+1])

{

swap(L, j, j+1);

flag = true;

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值