[每日练习]三种冒泡排序方法
来源:互联网 发布:python webui 编辑:程序博客网 时间:2024/06/06 18:55
#include <stdio.h>
#include <stdlib.h>
#include "../util/util.h"
/*
设数组长度为N。
1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。
2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。
3.N=N-1,如果N不为0就重复前面二步,否则排序完成。
*/
void BubbleSort1(int *a, int begin, int end)
{
int *p = a + begin;
int i, j;
int len = end - begin;
for(i=0; i<(len-1); i++)
for(j=1; j<(len-i); j++)
if(p[j-1] > p[j])
{
SwapArray(p, j-1, j);
}
}
/*
设置一个标志,如果这一趟发生了交换,则为true,否则为false。明显如果有一趟没有发生交换,说明排序已经完成。
*/
void BubbleSort2(int *a, int begin, int end)
{
int *p = a + begin;
int i, j;
int len = end - begin;
int flag = 1;
for(i=0; i<(len-1) && flag; i++)
{
flag = 0;
for(j=1; j<(len-i); j++)
if(p[j-1] > p[j])
{
SwapArray(p, j-1, j);
flag = 1;
}
}
}
void BubbleSort3(int *a, int begin, int end)
{
int *p = a + begin;
int j;
int switch_point;
int switch_len = end - begin;
while(switch_len > 0)
{
switch_point = 0;
for(j=1; j<switch_len; j++)
if(p[j-1] > p[j])
{
SwapArray(p, j-1, j);
switch_point = j;
}
switch_len = switch_point;
}
}
- [每日练习]三种冒泡排序方法
- 冒泡排序法的三种方法。
- 三种排序方法:插入、冒泡、选择
- 冒泡排序三种实现方法
- 冒泡排序的三种实现方法
- 冒泡排序的三种实现方法
- 冒泡排序的三种方法
- 排序——冒泡排序(三种方法)
- 三种冒泡排序
- java中的三种排序方法使用:选择排序,冒泡排序,sort方法排序。
- 冒泡排序的三种实现方法-----python
- 三种低级排序方法(冒泡 选择 插入)
- 【C语言】冒泡法排序的三种实现方法
- java三种排序(冒泡,选择,方法sort)
- [每日练习]堆排序
- 冒泡排序三种优化
- <每日一算法>冒泡排序
- <每日一题>冒泡排序
- 关于理解哈希表的除法散列法(取余法)
- linux自动安装
- XOR异或
- ztree获取选中节点
- 关于网页的颜色搭配
- [每日练习]三种冒泡排序方法
- C# - Iterator
- PHP的MySQL扩展:PHP访问MySQL的常用扩展函数
- Memcached 的介绍与命令使用
- ScrollView 滚动到最后/前/上/下
- 最大和子数组与最大积子数组(Largest Sum Contiguous Subarray & Maximum Product Subarray)
- CentOS 7 LAMP
- 如何删掉DedeCMS 5.7中自带的织梦链
- JDK安装及环境变量配置