排序方法(C++)
7种排序方法如下:
直接插入排序InsertSort()
希尔排序ShellSort()
起泡排序BubbleSort()
快速排序QuickSort()
简单选择排序SelectSort()
堆排序HeapSort()
归并排序MergeSort()
【如有需要自行查找,这里就不一一解说了】
综合案例
sort.h
#ifndef SORT_H
#define SORT_H
#include<iostream>
#include<cmath>
using namespace std;
class Sort
{
public:
Sort(int r[ ], int n);
~Sort( );
void InsertSort( ); // 直接插入排序
void ShellSort( ); // 希尔排序
void BubbleSort( ); // 冒泡排序
void QuickSort(int first, int last); // 快速排序
void SelectSort( ); // 选择排序
void HeapSort( ); // 堆排序
void MergeSort1(int first, int last);// 归并递归排序
void MergeSort2( ); // 归并非递归排序
void Print( ); // 循环遍历输出
private:
int Partition(int first, int last); // 快速排序的划分算法
void Sift(int k, int last); //
void Merge(int first1, int last1, int last2); //
void MergePass(int h); //
int *data; // 排序数组
int length; // 数组长度
};
// 构造函数
Sort :: Sort(int r[ ], int n){
data = new int[n];
for (int i = 0; i < n; i++)
data[i] = r[i];
length = n;
}
// 析构函数
Sort :: ~Sort( ){
delete[ ] data;
}
// 遍历输出
void Sort :: Print( ){
cout<<"排序后的数组为:"<<endl;
for (int i = 0; i < length; i++){
cout << data[i] << "\t";
}
cout << endl;
}
// 直接插入排序
void Sort :: InsertSort( ){
int i, j, temp;
for (i = 1; i < length; i++){
temp