查找排序算法时,找到一个种带标记的冒泡排序算法,它的优势是对于后部已经排好序的的数列,节省了继续向后比较的操作。
带标记的冒泡排序算法:在一次排序中,标记出最后一次进行交换元素的位置,在下次排序中,只需要比较到这个标记位置,因为后面的元素已经排好序。
C++实现
#include <iostream>
#include <vector>
using namespace std;
template<typename T>
void BubbleSort(vector<T> &vec);
int main()
{
int arr[] = {8, 3, 10, 49, 2, 6, 13, 5, 14, 7, 51, 53, 55};
vector<int> vec(&arr[0], &arr[13]);
BubbleSort(vec);
return 0;
}
template<typename T>
void BubbleSort(vector<T> &vec)
{
int VSize = vec.size();
if (VSize < 1)
return;
if (1 == VSize)