⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 各种排序算法BubbleSort、DichotomySort、HeapSort、InsertSort、MergeSort、QuickSort、ShellSort、
💻 CPP
字号:
#include <time.h> 
#include <stdlib.h>   
#include "Sort.h"
#include "InsertSort.h"
#include "HeapSort.h"
#include "SelectSort.h"
#include "BubbleSort.h"
#include "QuickSort.h"
#include "ShellSort.h"
#include "MergeSort.h"
#include "DichotomySort.h"
#include <iostream.h>

void copyArray(int *A,int *B,int h)//保存原来数组
{
	for(int i = 0 ; i < h ; i++)
	{
		A[i]=B[i];
	}
}
void main()
{
	const int n = 100000;
	int m = n;
	int *array1,*array2,*array3;
    int *copy;
    array1 = new int[n];
	array2 = new int[n];
	array3 = new int[n];
	copy=new int[n];
    srand(time(0));

	HeapSort<int> H_Sort;
	BubbleSort<int> B_Sort;
	InsertSort<int> I_Sort;
	QuickSort<int> Q_Sort;
	ShellSort<int> E_Sort;
	SelectSort<int> S_Sort;
	DichotomySort<int> D_Sort;

    for (int i = 0; i < n; i++)
    {
		array1[i] = rand() % 9000 + 1000;
		array2[i] = i+1;
		array3[i] = m;
		m--;
    }
	char ch;
	while(true)
	{
		cout<<"请输入数组的形式:乱序(L)顺序(S)逆序(N)"<<endl;
		cin>>ch;
		if(ch == 'l')
		{
			/*cout<<"++++++++++++++原数组+++++++++++++++"<<endl;
			for (int k = 0 ; k < n ; k++)
			{
				if(k % 10 == 0)
					cout<<endl;
				copy[k]=array1[k];
     			cout<<array1[k]<<"  ";
			}
			cout<<endl;*/

			
			H_Sort.Sorts(array1,n);
			H_Sort.print_h(array1,n);
			cout<<endl<<endl;
 
			copyArray(array1,copy,n);
			
			B_Sort.Sorts(array1,n);
			B_Sort.print_b(array1,n);
			cout<<endl<<endl;

			copyArray(array1,copy,n);
			
			I_Sort.Sorts(array1,n);
			I_Sort.print_i(array1,n);
			cout<<endl<<endl;
			
			copyArray(array1,copy,n);
			
			Q_Sort.Sorts(array1,0,n-1,n);
			Q_Sort.print_q(array1,n);
			cout<<endl<<endl;

			copyArray(array1,copy,n);
			
			E_Sort.Sorts(array1,n);
			E_Sort.print_e(array1,n);
			cout<<endl<<endl;

			copyArray(array1,copy,n);
			
			S_Sort.Sorts(array1,n);
			S_Sort.print_s(array1,n);
			cout<<endl<<endl;

			/*copyArray(array1,copy,n);
			MergeSort<int> M_Sort;
			M_Sort.Sorts(array1,array1,0,n-1);
			M_Sort.print_m(array1,n);
			cout<<endl<<endl;*/

			copyArray(array1,copy,n);
			
			D_Sort.Sorts(array1,n);
			D_Sort.print_d(array1,n);
			cout<<endl<<endl;
		}
		else if(ch == 's')
		{
			cout<<"++++++++++++++原数组+++++++++++++++"<<endl;
			for (int k = 0 ; k < n ; k++)
			{
				if(k % 10 == 0)
					cout<<endl;
				copy[k]=array2[k];
     			cout<<array2[k]<<"  ";
			}
			cout<<endl;

			//HeapSort<int> H_Sort;
			H_Sort.Sorts(array2,n);
			H_Sort.print_h(array2,n);
			cout<<endl<<endl;
 
			copyArray(array2,copy,n);
			//BubbleSort<int> B_Sort;
			B_Sort.Sorts(array2,n);
			B_Sort.print_b(array2,n);
			cout<<endl<<endl;

			copyArray(array2,copy,n);
			//InsertSort<int> I_Sort;
			I_Sort.Sorts(array2,n);
			I_Sort.print_i(array2,n);
			cout<<endl<<endl;
			
			copyArray(array2,copy,n);
			//QuickSort<int> Q_Sort;
			Q_Sort.Sorts(array2,0,n-1,n);
			Q_Sort.print_q(array2,n);
			cout<<endl<<endl;

			copyArray(array2,copy,n);
			//ShellSort<int> E_Sort;
			E_Sort.Sorts(array2,n);
			E_Sort.print_e(array2,n);
			cout<<endl<<endl;

			copyArray(array2,copy,n);
			//SelectSort<int> S_Sort;
			S_Sort.Sorts(array2,n);
			S_Sort.print_s(array2,n);
			cout<<endl<<endl;

			copyArray(array2,copy,n);
			//DichotomySort<int> D_Sort;
			D_Sort.Sorts(array2,n);
			D_Sort.print_d(array2,n);
			cout<<endl<<endl;
		}
		else if(ch == 'n')
		{
			cout<<"++++++++++++++原数组+++++++++++++++"<<endl;
			for (int k = 0 ; k < n ; k++)
			{
				if(k % 10 == 0)
					cout<<endl;
				copy[k]=array3[k];
     			cout<<array3[k]<<"  ";
			}
			cout<<endl;

			//HeapSort<int> H_Sort;
			H_Sort.Sorts(array3,n);
			H_Sort.print_h(array3,n);
			cout<<endl<<endl;
 
			copyArray(array3,copy,n);
			//BubbleSort<int> B_Sort;
			B_Sort.Sorts(array3,n);
			B_Sort.print_b(array3,n);
			cout<<endl<<endl;

			copyArray(array3,copy,n);
			//InsertSort<int> I_Sort;
			I_Sort.Sorts(array3,n);
			I_Sort.print_i(array3,n);
			cout<<endl<<endl;
			
			copyArray(array3,copy,n);
			//QuickSort<int> Q_Sort;
			Q_Sort.Sorts(array3,0,n-1,n);
			Q_Sort.print_q(array3,n);
			cout<<endl<<endl;

			copyArray(array3,copy,n);
			//ShellSort<int> E_Sort;
			E_Sort.Sorts(array3,n);
			E_Sort.print_e(array3,n);
			cout<<endl<<endl;

			copyArray(array3,copy,n);
			//SelectSort<int> S_Sort;
			S_Sort.Sorts(array3,n);
			S_Sort.print_s(array3,n);
			cout<<endl<<endl;

			copyArray(array3,copy,n);
			//DichotomySort<int> D_Sort;
			D_Sort.Sorts(array3,n);
			D_Sort.print_d(array3,n);
			cout<<endl<<endl;
		}
		else 
			break;
	}
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -