一、请使用函数模板,写一个能够针对所有数据类型的数据的快速排序函数
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>
using namespace std;
template <typename T>
T first_sort(T* arr,int start,int end)
{
T base = arr[start];
while(start<end)
{
if(base<=arr[end])
{
end--;
}
arr[start] = arr[end];
if(base>arr[start])
{
start++;
}
arr[end] = arr[start];
}
cout << "快排后的数组:";
for(int i=0;i<7;i++)
{
cout << arr[i] << " ";
}
cout << endl;
arr[start] = base;
return start;
}
template <typename T>
void sort(T* arr,int start,int end)
{
if(start >= end) { return ;}
T ret = first_sort(arr,start,end);
sort(arr,start,ret-1);
sort(arr,ret+1,end);
}
int main(int argc,const char** argv){
int arr[7] = {66,22,33,44,55,77,11};
sort(arr,0,sizeof(arr)/sizeof(arr[0]-1));
cout << "完成所有快排后的数组:";
for(int i=0;i<7;i++)
{
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
运行结果:

424

被折叠的 条评论
为什么被折叠?



