关闭

排序算法2--冒泡排序

197人阅读 评论(0) 收藏 举报
在冒泡排序的程序中,按升序排列使用了改进的冒泡排序算法,是得最好情况下时间复杂度为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]);
    }

}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6260次
    • 积分:127
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条
    文章存档