南邮算法实验一:分治法

算法实验一:

#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>:
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值