添加冒泡排序代码以排列列表

时间:2017-07-02 04:57:46

标签: c++ sorting

到目前为止,这是我的计划:

    #include <iostream>
    #include <string>

    using namespace std;

    template <class type>
    void display( type list[], int size );

    template <class type>
    void bubblesort( type list[], int size);

在我的主要功能中,我有列表。

    int main()
    {
        const int SIZE = 5;
        string nameList[SIZE] = {"Bob", "Allen", "Beth", "Zebra", 
    "Hamburger" };
        int numberList[SIZE] = {88, 23, 74, 45, 78};


        //display list 1
        display(nameList, SIZE);

        //display list 2
        display(numberList, SIZE);

        system("pause");
        return 0;
    }

这是我显示列表的方式:

    template <class type> //template must be included above 
    void display( type list[], int size )
    {
        for( int x = 0; x < size; x++ )
        {
            cout << list[x] << endl;
        }
    }

这是我想要包括bubblesort的地方,但我不知道如何。

    template <class type>
    void bubblesort( type list[], int size)
    {

    }

2 个答案:

答案 0 :(得分:0)

实现整数的冒泡排序是直截了当的。一个简单的泡泡排序谷歌将回答你的问题。字符串略有不同。你必须抓住字符串的第一个字符

{
string myString = "cat";

char c = myString[0];

//stringName[0] obtains the first character, since string are basically character array objects, so they can be accessed like a normal array

 }

You can then cast that character to an integer

{

char firstChar = myString[0];

int firstCharValue = (int)firstChar

//or just as 

int firstCharValue = (int)myString[0]

}

然后你回到一个简单的整数冒泡排序。

答案 1 :(得分:0)

试试这段代码。

void bubblesort(type list [],int size)

{     for(int i = 0; i

     {
        int flag=0;

        for(int j=0;n<size-i-1;j++)

             {
                    if(list[j]>list[j+1])

                        {
                             int temp=list[j];
                             list[j]=list[j+1];
                             list[j+1]=temp;
                             flag=1;
                        }
               }
        if(flag==1) break;
       }

}