模板实现直接选择排序

版权声明:本文为博主原创文章,欢迎分享!吾生有涯而知也无涯,一起加油 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;
}
图 1模板实现直接选择排序

猜你喜欢

转载自blog.csdn.net/qq_41822235/article/details/82429954
今日推荐