用C++实现七种排序算法,可选择排序方法,简单易懂。

       最近学习算法,先从简答的开始学起,用C++做了一个实现七种排序算法的界面,可选择想要用的选择算法,不过,由于时间仓促,没有来得及优化和代码注释,后期还会加上代码注释,随便优化一下代码,提高执行效率;

/*************************************************************************
	> File Name: sort.cpp
	> Author: kanty
	> Email: [email protected] 
	> Created Time: Mon 24 Feb 2014 08:41:08 PM CST
 ************************************************************************/

#include
#define NUM 50
using namespace std;

int Division(int a[],int left,int right)
{
    int base=a[left];
    while(leftbase)
        --right;
        a[left]=a[right];
    while(left=0 && ta[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
}

/*
 * void BubbleSort(int a[],int m)
 * {
 *  int i,j,temp;
 *  for(i=0;ii;j--)
 *  {
 *      if(a[j]a[j]) 
          k=j;
        temp=a[i];
        a[i]=a[k];
        a[k]=temp;
    }
}

void QuickSort(int a[],int left,int right)
{
    int i,j;
    if(left=1)
    {
    for(i=d;i=0 && a[j]>x)
        {
            a[j+d]=a[j];
            j=j-d;
        }
        a[j+d]=x;
    }
        d=d/2;
    }
}

void HeapAdjust(int a[],int s,int n)
{
    int j,t;
    while(2*s+1=0;i--)
    HeapAdjust(a,i,m);
    for(i=m-1;i>0;i--)
    {
        t=a[0];
        a[0]=a[i];
        a[i]=t;
        HeapAdjust(a,0,i);
    }
}

void MergeStep(int a[],int r[],int s,int m,int n)
{
    int i,j,k;
    i=s;
    k=s;
    j=m+1;
    while(i<=m && j<=n)
    {
        if(a[i]<=a[j])
        r[k++]=a[i++];
        else
        r[k++]=a[j++];
    }
    while(i<=m)
    r[k++]=a[i++];
    while(j<=n)
    r[k++]=a[j++];
}

void MergePass(int a[],int r[],int n,int len)
{
    int s,e;
    s=0;
    while(s+len=n)
        e=n-1;
        MergeStep(a,r,s,s+len-1,e);
        s=e+1;
    }
    if(s>i;
    switch(i)
    {
        case 1  : InsertSort(a,m);break;
        case 2  : BubbleSort(a,m);break;
        case 3  : SelectSort(a,m);break;
        case 4  : QuickSort(a,0,m-1);break;
        case 5  : ShellSort(a,m);break;
        case 6  : HeapSort(a,m);break;
        case 7  : MergeSort(a,m);break;
        default : break;
    }
}

int main()
{
    int a[NUM],n;
    cout<<"please input n :"<>n;
    cout<<"please input  "<>a[i];
    cout<<"before sorted:"<






你可能感兴趣的:(数据结构)