[Python] 纯文本查看 复制代码
void sort(int* arr, int length) //函数只能针对Int类型排序
{
for (int i = 0; i < length; i++)
{
for (int j = 0; j < length; j++)
{
if (arr[j] < arr[j + 1])
{
arr[j] = arr[j] + arr[j + 1];
arr[j+1] = arr[j] - arr[j + 1];
arr[j] = arr[j] - arr[j + 1];
}
}
}
}
void SortByChar(char* arr, int length) //函数只能针对char类型排序
{
for (int i = 0; i < length; i++)
{
for (int j = 0; j < length; j++)
{
if (arr[j] < arr[j + 1])
{
arr[j] = arr[j] + arr[j + 1];
arr[j + 1] = arr[j] - arr[j + 1];
arr[j] = arr[j] - arr[j + 1];
}
}
}
}
template<class T> //如果需要替换两处,那就在定义一个class S 名字随便取
void SortByTemplate(T* arr, int length) //使用模板实现两个类型用一个函数进行排序
{
for (int i = 0; i < length; i++)
{
for (int j = 0; j < length; j++)
{
if (arr[j] < arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
class Base
{
public:
int x;
int y;
char a;
char b;
Base(int x, int y)
{
this->x = x;
this->y = y;
}
int Getx()
{
return x;
}
int Gety()
{
return y;
}
bool operator<(Base& base)
{
return this->x < base.x&& this->y < base.y;
}
};
int main2()
{
int arr[10] = { 97,98,99,100,101,102,103,104,105,106 }; //调用函数int排序 void sort(int* arr, int length)
sort(arr, 10);
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\nint类型排序\n\n");
char cArr[10] = { 97,98,99,100,101,102,103,104,105,106 };//调用函数char排序 void SortByChar(char* arr, int length)
SortByChar(cArr, 10);
for (int i = 0; i < 10; i++)
{
printf("%c ", arr[i]);
}
printf("\nchar类型排序\n\n");
SortByTemplate(arr, 10); //使用一个函数 排序两种不同类型数组 int类型 (模板使用)
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
printf("\n模板 int类型排序\n\n");
SortByTemplate(cArr, 10); //使用一个函数 排序两种不同类型数组 char类型 (模板使用)
for (int i = 0; i < 10; i++)
{
printf("%c ", cArr[i]);
}
printf("\n模板 int类型排序\n\n");
Base b1(1, 1), b2(3, 3), b3(6, 6), b4(2, 2), b5(9, 9), b6(7, 7);
Base Barr[] = { b1,b2,b3,b4,b5,b6 };
for (int i = 0; i < 6; i++)
{
printf("%d %d\n", Barr[i].Getx(), Barr[i].Gety());
}
printf("\n结构体模板 Base类型排序前\n\n");
SortByTemplate(Barr, 6);
for (int i = 0; i < 6; i++)
{
printf("%d %d\n", Barr[i].Getx(), Barr[i].Gety());
}
printf("\n结构体模板 Base类型排序后\n\n");
return 0;
}