排序算法2--冒泡排序

在冒泡排序的程序中,按升序排列使用了改进的冒泡排序算法,是得最好情况下时间复杂度为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]);
    }

}

阅读更多
文章标签: 算法 class null
个人分类: 数据结构及算法
上一篇排序算法1--选择排序
下一篇排序算法3--插入排序
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭