Я хочу использовать пузырьковую сортировку для внешнего файла данных, пока выглядит так.
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;
}
}
}
}
Какой бы алгоритм сортировки вы не использовали, вы должны использовать указатели на первую и последнюю позицию. В этом случае вы можете отсортировать элементы 1-4, а затем выполнить сортировку по элементам 6-10.
Эта функция предназначена для сортировки пузырьков для трехмерного массива в порядке возрастания.
Если вы хотите устроить в 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.