我希望对外部数据文件使用冒泡排序,而看起来像这样。
00000002
45
56
32
46
00000001
87
95
83
100
所以00000001以下的所有数据都出现在00000002之前。我猜是为了这样做,我需要使用一个3d数组。有没有办法在变量下存储00000001下的所有数据,只需使用简单的冒泡排序方法对其进行排序。如果可以这样做,那么我可以使用这样的东西进行排序。
void displayArray(int sArray[2])
{
int i = 0;
while(i<2)
{
cout << sArray[i];
cout << "\n";
i++;
}
}
void sortArray(int sArray[2])
{
int temp = 0;
bool sorted = false;
while(sorted == false)
{
sorted = true;
for(int i=0; i<1;i++)
{
if(sArray[i]>sArray[i+1])
{
temp = sArray[i];
sArray[i] = sArray[i+1];
sArray[i+1] = temp;
sorted = false;
}
}
}
}
答案 0 :(得分:0)
无论您使用何种排序算法,都应该使用指向第一个和最后一个位置的指针。在这种情况下,您可以对项目1-4进行排序,然后对项目6-10运行排序。
答案 1 :(得分:0)
此功能用于按升序排列3D阵列的气泡。
如果您想安排descending order
,那么只需更改>
而不是<
如果要更改数组的大小,则可以更改循环大小。
#include <iostream>
using namespace std;
int sorting(int array[2][2][5]){
int temp;
for (int i = 0 ; i < 2 ; i++ )
for (int j = 0 ; j < 2; j++ )
for (int k = 0 ; k < 5 ; k++ )
for (int a = 0 ; a < 2 ; a++ )
for (int b = 0 ; b < 2 ; b++ )
for (int c = 0 ; c < 5 ; c++ )
if (array[i][j][k] < array[a][b][c]){
temp = array[i][j][k];
array[i][j][k] = array[a][b][c];
array[a][b][c] = temp;}
for (int i = 0 ; i < 2 ; i++ )
for (int j = 0 ; j < 2 ; j++ )
for (int k = 0 ; k < 5 ; k++ ){
cout << array[i][j][k] << endl;
}
return 0;
}
int main(){
int array1[2][2][5] = {{{45,23,67,1,-12},{34,43,234,567,576}},
{{345,345,76,87,2},{456,789,890,32,4}}};
sorting(array1);
}
////This is example of bubble sorting of 3D array.