07.13 c++之模板函數實現冒泡排序

//模板函數實現,關鍵字template

//模板函數實現冒泡排序

#include<iostream>

#include<string>

using namespace std;

template <class>

void BubbleSort(T tData[], int nSize)

{

for (int i = 0; i < nSize - 1; i++)

{

bool bOrdered = true;

for (int j = 0; j < nSize - i - 1; j++)

{

if (tData[j] > tData[j + 1])

{

T temp = tData[j];

tData[j] = tData[j + 1];

tData[j + 1] = temp;

bOrdered = false;

}

}

if (bOrdered)

break;

}

}

int main()

{

//對數字進行冒泡排序

int nData[] = { 13,23,20,12,15,31,19,26,24,37 };

int nSize = sizeof(nData) / sizeof(nData[0]);

BubbleSort(nData, nSize);

for (int i = 0; i < nSize; i++)

{

cout << nData[i];

if (i < nSize - 1)

cout << ", ";//每打印一個數據,打印出一個空格

else

cout << endl;//當長度大於數組長度,回車換行

}

//對字符串進行冒泡排序

string sData[] = { "nanning", "shanghai", "tianjin", "beijing", "guangzhou",

"nanjing", "chongqing", "jinan", "kunming", "lasa" };

nSize = sizeof(sData) / sizeof(sData[0]);

BubbleSort(sData, nSize);

for (int i = 0; i < nSize; i++)

{

cout << sData[i];

//解釋同上

if (i < nSize - 1)

cout << ", \\n";

else

cout << endl;

}

system("pause");

return 0;

}

結果如圖所示:

c++之模板函數實現冒泡排序

歡迎大家一起交流,共同進步!


分享到:


相關文章: