-1

我有一个用 C++ 对数组进行排序的练习。我正在使用 Turbo C++ 的命令行编程进行编码。

4

2 回答 2

4

您可以使用此代码,它使用冒泡排序算法。

#include <stdio.h>
#include <iostream>

using namespace std;

void sort(int *,int);

int main()
{
    int arr[10] = {2,3,4,12,5,0,2,5,1,20};
    sort(arr,10);
for(int i = 0;i<10;i++)
    cout << arr[i] << " ";
    return 0;
}

void sort(int * ar,int length)
{
    for(int i = 0;i<length;i++)
    {
        for(int j = i;j<length;j++)
        {
            if(ar[j] < ar[i])
            {
                int swap = ar[i];
                ar[i] = ar[j];
                ar[j] = swap;
            }
        }
    }
}

编辑:

正如我所说,它基于气泡算法。它从第一个到最后一个顺序检查索引,并自动将最小的数字放在第一位,第二小的放在第二位,依此类推。您可以在此处此处查看更多信息。

于 2013-11-09T05:27:37.090 回答
-1

这是我的做法。希望这就是你的意思。

  • 阅读命令行参数
  • atoi使用函数将字符串转换为整数
  • 使用任何排序算法进行排序(此处使用冒泡排序
  • 打印结果

要了解冒泡排序的工作原理,请查看

    #include<iostream.h>
    #include<stdlib.h>

    int main(int argc, char *argv[])
    {
     int i,j,temp, arr[10];

     for(i=1; i<argc; ++i)
     {
      arr[i-1] = atoi(argv[i]);
     }

     /* Sort the array using bubble sort alogrithm */
     for(i=0; i<argc-2; ++i)
     {
      for(j=0; j<argc-2; ++j)
      {
       if(arr[j] > arr[j+1])
       {
        temp = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = temp;
       }
      }
     }

     /* Print the result */
     cout<<"Sorted array : ";
     for(i=0; i<argc-1; ++i)
     {
      cout<<" "<<arr[i];
     }
     return 0;
    }
于 2013-11-09T05:27:29.067 回答