冒泡排序
基本思想
每次从后向前进行(假设为第i次),j=n-1,n-2,…,i,两两比较V[j-1]和V[j]的关键字,如果发生逆序则交换V[j-1]和V[j]的值,如下图所示从无序序列区域最后一个元素开始冒泡,若发现逆序则交换元素,一次冒泡过后有序序列区域增加一个元素且仍有序
下图是动画演示过程,Exchang用来标记无序序列是否已经有序,若已经有序则Exchang置为0避免再次冒泡比较浪费时间,时间复杂度为O(n*n)且是稳定排序
代码演示
template <typename T>
static void Bubble(T array[],int len,bool min2max = true)
{
bool exchange = true;//设置标记
for(int j = 0;j<len-1&&exchange