#include <iostream>
using namespace std;
class maopao //类
{
private:
int chang;//长
int *arr;//数组
int t;//交换数据会用到
void small_to_big(int *aa, int c);//从小到大排序
void big_to_small(int *aa, int c);//从大到小排序
void swap(int &a, int &b);//交换
public:
maopao(int *aa, int c);//构造函数
~maopao();//析构函数
void show();//外部调用接口
void small_to_big();
void big_to_small();
};
//构造函数
maopao::maopao(int *aa, int c)
{
arr = aa;//输入数组赋给arr
chang = c;//输入长度赋给chang
}
//析构函数
maopao::~maopao()
{
cout << "结束" << endl;
}
//显示数组
void maopao::show()
{
for (int i = 0; i < chang; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
//从小到大
void maopao::small_to_big()
{
small_to_big(arr, chang);
}
void maopao::small_to_big(int *aa, int c)
{
for (int i = 0; i < c; i++)
{
for (int j = 0; j < c - i - 1; j++)
{
if (aa[j] > aa[j + 1])
{
swap(aa[j], aa[j + 1]);
}
}
}
}
//从大到小
void maopao::big_to_small()
{
big_to_small(arr, chang);
}
void maopao::big_to_small(int *aa, int c)
{
for (int i = 9; i > 0; i--)
{
for (int j = 9; j > c - i - 1; j--)
{
if (aa[j] > aa[j - 1])
{
swap(aa[j], aa[j - 1]);
}
}
}
}
//交换
void maopao::swap(int &a, int &b)
{
t = a;
a = b;
b = t;
}
int main(int argc, char *args[])
{
int buf[10] = { 12, 4, 34, 6, 8, 65, 3, 2, 988, 45 };
int m = sizeof(buf) / sizeof(int);//申请内存空间,并得知数组长度
maopao sa1(buf, m);
cout << "排序前:" << endl;
sa1.show();
sa1.small_to_big();
cout << "从小到大排序后:" << endl;
sa1.show();
sa1.big_to_small();
cout << "从大到小排序后:" << endl;
sa1.show();
}