• C++归并排序模版


    老规矩,先来头文件StoreUtil.h

    #include <iostream>
    #ifndef SORTUTIL_H
    #define SORTUTIL_H
    
    class SortUtil
    {
    	
    public:
    
    	template <class T>
    	void MergeSort(T randomArray[], int left, int right);                  //归并推排序,left和right为下标
    
    	template <class T>
    	void Merge(T A[], int left, int mid, int right);                             //合并数组
    
    };
    
    
    #endif
    

      再来SortUtil.cpp

    #include <iostream>
    #include "SortUtil.h"
    using namespace std;
    
    template <class T>
    void SortUtil::MergeSort(T randomArray[], int left, int right)
    {
    	int mid;
    	if (left < right)
    	{
    		mid = (left+right)/2;
    		
    		MergeSort(randomArray, left, mid); //分割左边的序列
    		MergeSort(randomArray, mid+1, right); //分割右边的序列
    		Merge(randomArray, left, mid+1, right+1); //归并序列
    	}
    }
    
    template <class T>
    void SortUtil::Merge(T A[],int left, int mid, int right)
    {
    	T* temp = new T[left+right];
    	int i = left, j = mid, k = 0;
    
    	while (i < mid && j < right)
    	{
    		if (A[i] <= A[j])
    			temp[k++] = A[i++];
    		else
    			temp[k++] = A[j++];
    	}
    
    	while (i < mid)
    		temp[k++] = A[i++];
    
    	while (j < right)
    		temp[k++] = A[j++];
    
    	for (i = left, k = 0; i < right; i++, k++)
    		A[i] = temp[k];
    
    }
    

      最后是main.cpp

    #include <iostream>
    #include "SortUtil.cpp"
    #include <ctime>
    using namespace std;
    
    
    int main()
    {
    	srand((unsigned)time(0));
    	SortUtil sortUtil;
    	int test[1000];
    	int length = 1000;
    	for (int i = 0; i < length; i++)
    	{
    		test[i] = length - i;
    	}
    	sortUtil.MergeSort(test, 0, length-1);
    
    	for (int i = 0; i < length; i++)
    	{
    		cout<<test[i]<<" ";
    	}
    	cout<<endl;
    }
    

      

  • 相关阅读:
    C#多态的实现
    C#虚方法
    stm32HAL库中串口部分各个传输和接收函数分析
    ASC字符串取模网址
    STM32F1高级定时器做普通PWM输出配置(例TIM1)
    maven 插件说明
    mac 离线安装yarn
    Tomcat 远程调试
    杀死 tomcat 进程的脚本
    mysql 安装
  • 原文地址:https://www.cnblogs.com/daocaowu/p/3146366.html
Copyright © 2020-2023  润新知