版权声明:本文为博主原创文章,欢迎分享!吾生有涯而知也无涯,一起加油 https://blog.csdn.net/qq_41822235/article/details/82429954
#include<iostream>
using namespace std;
template<typename T>
void DirectSelectSort(T arr[], int n) {
T tmp = T();
int sit = 0;
for(int i = 0; i<n - 1; ++i)
{
sit = i;
for (int j = i + 1; j < n; ++j)
{
if (arr[sit] > arr[j]) //升序
sit = j;
}
if (i != sit)
{
tmp = arr[i];
arr[i] = arr[sit];
arr[sit] = tmp;
}
}
}
template<>
void DirectSelectSort<const char *>(const char* arr[], int n) {
const char *tmp = NULL; //所指之物的值不可改变
int sit = 0;
for (int i = 0; i < n-1; ++i)
{
sit = i;
for (int j = i + 1; j < n; ++j) {
if (strcmp(arr[sit], arr[j]) > 0) //
sit = j;
}
if (i != sit)
{
tmp = arr[i];
arr[i] = arr[sit];
arr[sit] = tmp;
}
}
}
template<typename T>
void PrintArry(T arry[], int n){
for (int i = 0; i < n; ++i)
cout << arry[i] << " ";
cout << endl;
}
int main()
{
const char * arr[] = {"cccccc","bbbbbbb","aaaaaaaa"};
DirectSelectSort(arr, sizeof(arr)/sizeof(const char*));
PrintArry(arr, sizeof(arr) / sizeof(const char*));
system("pause");
return 0;
}