模板实现直接选择排序

#include
using namespace std;

template
void DirectSelectSort(T arr[], int n) {
	T tmp = T();
	int sit = 0;
	for(int i = 0; i arr[j])	//升序
				sit = j;
		}
		if (i != sit)
		{
			tmp = arr[i];
			arr[i] = arr[sit];
			arr[sit] = tmp;
		}
	}
}

template<>
void DirectSelectSort(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
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;
}
模板实现直接选择排序_第1张图片 图 1模板实现直接选择排序

你可能感兴趣的:(模板实现直接选择排序)