纯c 冒泡排序算法

冒泡排序算法的实现,

在2010测试通过,排序了int Array[100000]用了30秒的时间.有点意思.

然后调用我上一篇写的二分查找算法,用了15次就查找出来了.世界又美好了一些呵呵呵呵.

下面是代码.

对了.如果你看了.请顶一下好吧.也算对我的支持,如果写的太烂,你帮忙提点意见.谢谢了.

/*

   冒泡排序算法:

   优点:1.“编程复杂度”很低,很容易写出代码;

             2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序、快速排序均不具有稳定性。

   缺点:
   使用范围:
   原理:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
   时间复杂度:O(n^2)
   注意事项:


*/
#ifndef  MY_maopao_h
#define  MY_maopao_h


#ifdef __cplusplus
extern "C"
{
#endif
void myMaoPaoShow(int *Array, int lenght);


#ifdef __cplusplus
}
#endif

#endif

源文件:

#include "myMaoPao.h"


void myMaoPaoShow(int *Array, int lenght)
{
int inner = 0; 
int outer = 0;
int flag = 1;
int change = 0;


if(Array == 0 || lenght == 0)
return;

for(outer = 0; outer<lenght -1 && flag;outer++)
{
flag = 0;
inner = 0;
for(;inner<lenght-outer-1; inner++)
{
if(Array[inner]>Array[inner+1])
{
change = Array[inner+1];
Array[inner+1] = Array[inner];
Array[inner] = change;
flag = 1;
}
}
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值