排序算法2--冒泡排序

原创 2007年09月15日 15:23:00
在冒泡排序的程序中,按升序排列使用了改进的冒泡排序算法,是得最好情况下时间复杂度为O(n),降序排列部分使用的是最基础冒泡排序

template <class T>
void bubble_sort(T *Array, int Size, bool Ascending = true)
...{
    assert(Array 
!= NULL);
    assert(Size 
>= 2);

    
int i, j, k = Size;

    
if (Ascending)
    
...{
        
for (i = 1; i < Size; i = k)
            
for (j = 0; j < Size-i; j++)
                
if (Array[j] > Array[j+1])
                
...{
                    swap(
&Array[j], &Array[j+1]);
                    k 
= Size - j;
                }

    }

    
else
    
...{
        
for (i = 1; i < Size; i++)
            
for (j = 0; j < Size-i; j++)
                
if (Array[j] < Array[j+1])
                    swap(
&Array[j], &Array[j+1]);
    }

}

排序算法之(1)——冒泡排序

**【冒泡排序的思想】** 冒泡排序总共进行n-1趟,每一趟扫描总是通过两两比较把大的往后放,所以第一趟即把最大数放在最后面,接着第二趟把第二大数放在倒数第二的位置………….到n-1完成,此时只有一...
  • adminabcd
  • adminabcd
  • 2015年06月06日 10:11
  • 865

经典排序算法(1)——冒泡排序算法详解

冒泡排序(Bubble Sort)是一种典型的交换排序算法,通过交换数据元素的位置进行排序。 一、算法基本思想 (1)基本思想 冒泡排序的基本思想就是:从无序序列头部开始,进行两两比较,根据大...
  • guoweimelon
  • guoweimelon
  • 2016年03月16日 10:52
  • 20288

最简单的排序算法之一冒泡排序----js实现

1. 算法步骤 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有...
  • wall1999
  • wall1999
  • 2017年02月15日 11:26
  • 5538

【手写排序算法及优化】冒泡排序

c++代码 #include void Print(int A[],int len) { for(int i=0;i { cout } cout } void BubbleSort(int A...
  • wuqiuping695
  • wuqiuping695
  • 2015年03月28日 21:42
  • 787

算法代码实现之冒泡排序,Java实现

两种类似的方式: /** * 冒泡排序 * @author roc */ public class BubbleSort { //交换数组元素 private static ...
  • QQ245671051
  • QQ245671051
  • 2016年02月27日 20:45
  • 846

冒泡排序算法及其优化

冒泡排序 1、介绍: 冒泡排序和选择排序的思想是蛮力法,冒泡,顾名思义,每次选择后面一个元素(最大或者最小)冒上来,从而得到一个有序的序列。比如对于序列:10、8、5、7、3、1的冒泡第一趟演示图示...
  • diaoaa
  • diaoaa
  • 2014年03月29日 13:20
  • 3207

java算法:使用冒泡算法对任何对象排序

1.普通的冒泡排序方法只能对数组进行排序  public static void bubbleSort(int[] numbers) {   int temp;    boolean fla...
  • u011659172
  • u011659172
  • 2013年12月05日 20:35
  • 1895

算法代码实现之冒泡排序,C/C++ 实现

两种类似的方式: #include //交换数组元素 void swap(int *a,int i,int j){ int t = a[i]; a[i] = a[j]; a...
  • QQ245671051
  • QQ245671051
  • 2016年02月27日 20:28
  • 1661

单链表实现冒泡排序算法

下面实现主要采用交换指针的方法,其中附加有单链表及其相关的实现 [cpp] view plain copy #include       struct ...
  • zhengqijun_
  • zhengqijun_
  • 2016年10月15日 19:54
  • 1582

经典排序算法(2)——快速排序算法详解

快速排序(Quick Sort)也是一种典型的交换排序算法,通过交换数据元素的位置进行排序。 一、算法基本思想 (1)基本思想 快速排序的基本思想就是:通过一趟排序将要排序的数据分割成独立...
  • guoweimelon
  • guoweimelon
  • 2016年03月16日 12:11
  • 907
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:排序算法2--冒泡排序
举报原因:
原因补充:

(最多只允许输入30个字)