算法实验一:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void Swap(int& a, int& b)
{
int t = a;
a = b;
b = t;
}
template <class T>
class SortableList
{
public:
SortableList()
{
int m;
cout << "数组长度n: ";
cin >> m;
// 消除C6385警告
if (m <= 0) {
printf("数组长度不合格!\n");
exit(-1);
}
n = m;
l = (T*)malloc(sizeof(T) * n); //动态分配l的内存
a = (T*)malloc(sizeof(T) * n); //动态分配a的内存
消除C6011警告
if (NULL == l || NULL == a) {
printf("无法动态申请内存!\n");
exit(-1);
}
}
void Select(int k) {
int j = 0;
j = Select(k, 0, n - 1, 5);
cout << "第k小元素是:" << l[j];
}
void MergeSort();
void Merge(int left, int mid, int right);
void QuickSort();
void Input();
void Init();
void Output();
int getn()
{
return n;
}
private:
int Partition(int left, int right);
int Partition2(int left, int right);
void MergeSort(int left, int right);
void QuickSort(int left, int right);
void InsertSort(int left, int right);
int Select(int k, int left, int right, int r);
T* l;//输入的数组值
T* a;//实际排序的数组值
int n;
};
template<class T>
void SortableList<T>: