起泡排序(Bubble Sort),依次比较相邻的两个记录的关键字,逆序时交换,一趟比较后最大的记录被安置到最后一个记录的位置上。下一次比较时比较的长度比上一次减1,知道最后长度为1终止。
template <typename T>
void bubble_sort(vector<T>& array,int length)
{
bool change = true;
for (int j = 0;j < length && change;j++)
{
change = false;//标记本次比较是否对顺序表进行改动,无改动则结束程序
for (int i = 0;i < length - j - 1;i++)
{
if (array[i] > array[i + 1])
{
change = true;
T temp = array[i+1];
array[i+1] = array[i];
array[i] = temp;
}
}
}
}