排序

交换排序包含冒泡排序快速排序

插入排序包含希尔排序

选择排序包括堆排序等。

 

冒泡排序 O(n2)

View Code
void MySwap(int &a, int &b)

{

    char temp;

    temp=a;

    a=b;

    b=temp;

}

void Bubble_Sort(int* a, int n)

{

    int i,j;

    bool Ischanged;



    for (i=0;i<n;i++)

    {

        Ischanged= false;

        for (j=n-1;j>i;j--)

        {

            if (a[j]<a[j-1])

            {

                MySwap(a[j],a[j-1]);

                Ischanged = true;

            }

        }

        while (!Ischanged)

        {break;}

    }

}

快速排序 O(n*log2n)

View Code
void MySwap(int &a, int &b)

{

    char temp;

    temp=a;

    a=b;

    b=temp;

}

void QuickSort(int *a, int begin, int end)

{

    int x=begin,y=end;

    int k = a[begin];

    if(begin>=end) return;

    while(x!=y)

    {

        while (y>x&&a[y]>k)

            {y--;}

        MySwap(a[y],a[x]);

        while(y>x&&a[x]<k)

            {x++;}

        MySwap(a[x],a[y]);

    }

    QuickSort(a,begin,x-1);

    QuickSort(a,x+1,end);

}

 

希尔排序

堆排序

 

你可能感兴趣的:(排序)