- 首页 > it技术 > >
#include
using namespace std;
bool Greater2(int n1,int n2)
{
return n1 > n2;
}
bool Greater1(int n1,int n2)
{
return n1 < n2;
}
bool Greater3(double d1,double d2)
{
return d1 < d2;
}template
void mysort(T1 *a, T1 *b, T2 op)
{
int len = b - a;
for (T1 *i = a + 1;
i != b;
i ++)
{
T1 key = *i;
T1 *j = i - 1;
while (op(key, *j) && j >= a)
{
*(j + 1) = *j;
j --;
}
*(j + 1) = key;
}
}
#define NUM 5
int main()
{
int an[NUM] = { 8,123,11,10,4 };
mysort(an,an+NUM,Greater1);
//从小到大排序
for( int i = 0;
i < NUM;
i ++ )
cout << an[i] << ",";
mysort(an,an+NUM,Greater2);
//从大到小排序
cout << endl;
for( int i = 0;
i < NUM;
i ++ )
cout << an[i] << ",";
cout << endl;
double d[6] = { 1.4,1.8,3.2,1.2,3.1,2.1};
mysort(d+1,d+5,Greater3);
//将数组从下标1到下标4从小到大排序
for( int i = 0;
i < 6;
i ++ )
cout << d[i] << ",";
return 0;
}
推荐阅读