冒泡排序和選擇排序de實現

1.冒泡排序

     冒泡排序的思想就是大數沉底,小數浮起。 它的做法是:對於n個需要排序的數,每次都把未排序的數中最大的數,放到它最終所在的位置。冒泡排序需要進行n-1趟。

     算法的C++語言實現如下:

template <class elemType> void BubbleSort(elemType a[],int length)
{
        //外層循環爲n-1趟
        for(int i=0;i<length-1;i++)
        {
                //內層循環每一次讓一個大數沉底
                for(int j=0;j<length-1;j++)
                {
                        if( a[j]>a[j+1] )
                        {
                                elemType temp = a[j];
                                a[j] = a[j+1];
                                a[j+1] = temp;
                        }
                }
        }

2.選擇排序

     選擇排序的思想和選擇排序類似,它每次選擇未排序中最小的數,把它放到最終的位置上。對n個需要排序的數,選擇排序也許要進行n-1趟。用C++實現代碼如下:

template <class elemType> void SelectionSort(elemType a[],int length)
{
        //外層循環進行n-1趟
        for(int i=0;i<length-1;i++)
        {
                //標記最小值的位置
                int min = i;
                for(int j=i+1;j<length;j++)
                {
                        if( a[j]<a[min] )
                        {
                                min = j;
                        }
                }

                if( min!=i )
                {
                        elemType temp = a[i];
                        a[i] = a[min];
                        a[min] = temp;
                }
        }
} 

選擇排序和冒泡排序的時間複雜度都是:O(n^2)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章