我有一个用 C++ 对数组进行排序的练习。我正在使用 Turbo C++ 的命令行编程进行编码。
问问题
2228 次
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 回答