排序代码测试(未完成)

#include<stdio.h>
#include<string.h>
using namespace std;
void swap(int &a,int &b)
{
    int tmp=a;
    a=b;
    b=a;
}
void Selectsort(int a[],int n)
{
    int i,j;
    for(i=0; i<n; i++)
        for(j=i+1; j<n; j++)
        {
            if(a[i]>a[j])swap(a[i],a[j]);
        }


    for(i=0; i<n; i++)
        printf("%d ",a[i]);
    puts("");
}
void Bubblesort(int a[],int n)
{
    int i,j;
    for(i=0; i<n; i++)
        for(j=n-1; j>i; j--)
        {
            if(a[j]<a[j-1])swap(a[j],a[j-1]);
        }


    for(i=0; i<n; i++)
        printf("%d ",a[i]);
    puts("");
}
void Insertsort1(int a[],int n)
{
    int x,i,j;
    for(i=1; i<n; i++)
    {
        if(a[i-1]>a[i])
        {
            j=i;
            x=a[i];
            while(x<a[j-1]&&j>0)
            {
                a[j]=a[j-1]
                     j--;
            }
            a[j]=x;




        }




    }
    for(i=0; i<n; i++)
        printf("%d ",a[i]);
    puts("");
}
void Insertsort2(int a[],int n)
{
    int x,i,j;
    for(i=1; i<n; i++)
    {
        for(j=i-1;j>=0&&a[j]>a[j+1];j--)
        swap(a[j],a[j+1]);
        
    }
        for(i=0; i<n; i++)
            printf("%d ",a[i]);
        puts("");
    }
    void Shellsort(int a[],int n)
    {
        int i,gap;
        for(gap=n/2;gap>0;gap/=2){
            for(i=gap;i<n;i+=gap)
            {
                if(a[i]<a[i-gap]){
                    int temp=a[i];
                    int k=i-gap;
                    while(k>=0&&a[k]>temp){
                        a[k+gap]=a[k];
                        k-=gap;
                        
                        
                    }
                    a[k+gap]=temp;
                    
                }
            }
            
            
            
        }






        for(i=0; i<n; i++)
            printf("%d ",a[i]);
        puts("");
    }








    int main()
    {








        return 0;

    }

#include<stdio.h>


void mergearray(int a[],int first,int mid,int last,int temp[] )
{
    int i=first,j=mid+1,m=mid,n=last;
    int k=0;
    while(i<=m&&j<=n)
    {
        if(a[i]<a[j])
            temp[k++]=a[i++];
        else
            temp[k++]=a[j++];


    }
    while(i<=m)temp[k++]=a[i++];
    while(j<=n)temp[k++]=a[j++];
    for(i=0; i<k; i++)
        a[first+i]=temp[i];






}
void mergesort(int a[],int first,int last,int temp[])
{
    if(first<last)
    {
        int mid=(first+last)/2;
        mergesort(a,first,mid,temp);
        mergesort(a,mid+1,last,temp);
        mergearray(a,first,mid,last,temp)
    }






}

posted on 2017-09-19 23:09  横济沧海  阅读(117)  评论(0编辑  收藏  举报

导航