#include <iostream>
using namespace std;
class select
{
private:
int *arr;//数组
int chang;//长度
int temp;
void show(int *aa, int length);//显示得内部功能实现
void selectSort(int *aa, int length);//从小到大排序
void selectSort1(int *aa, int length);//从大到小排序
void swap(int &a, int &b);
public:
select(int *aa, int c);//构造函数
~select();//析构函数
void show();//显示得外部调用接口
void selectSort();//从小到大排序
void selectSort1();//从大到小排序
};
//构造函数
select::select(int *aa, int c)
{
arr = aa;
chang=c;
}
//析构函数
select::~select()
{
cout << "结束" << endl;
}
//显示
void select::show()
{
show(arr,chang);
}
void select::show(int *aa, int length)
{
for (int i = 0; i<length; i++)
printf("%d ", aa[i]);
printf("\n");
}
//从小到大排序
void select::selectSort()
{
selectSort(arr, chang);
}
void select::selectSort(int *aa, int length)
{
int i, j, k;
for (i = 0; i<length; i++)
{
k = i;
for (j = i + 1; j<length; j++)
{
if (aa[j]<aa[k])
k = j;
}
swap(aa[i], aa[k]);
}
}
//交换
void select::swap(int &a, int &b)
{
temp = a;
a = b;
b = temp;
}
//从大到小排序
void select::selectSort1()
{
selectSort1(arr, chang);
}
void select::selectSort1(int *aa, int length)
{
int i, j, k;
for (i = 0; i<length ;i++)
{
k = i;
for (j = i + 1; j<length; j++)
{
if (aa[j]>aa[k])
k = j;
}
swap(aa[i], aa[k]);
}
}
int main()
{
int arr[10] = { -1,90,3,23,994,-23,9,10,100,-2 };
int len = sizeof(arr) / sizeof(int);
select s(arr, len);
printf("原始数组: ");
s.show();
s.selectSort();
printf("从小到大排序: ");
s.show();
s.selectSort1();
printf("从大到小排序: ");
s.show();
return 0;
}