Загрузка...

You need to sort a two-dimensional array using bubble sort

Thread in C/C++ created by Metal_inactive May 16, 2019. 280 views

  1. Metal_inactive
    Metal_inactive Topic starter May 16, 2019 0 Aug 24, 2017
    Всем привет, помогите пожалуйста уже два дня ламаю голову как сделать.Нужно отсортировать двухмерный масив с помощю bubble sort. Вот Код если с помощью циклов то отлично работает, а чере функицю просто 1 на вывод.
    Code

    #include <iostream>
    #include <iomanip>
    #include <cstdlib>
    using namespace std;
    void bubble(int** arr, int n , int m)
    {

    for (int k = 0; k <= (n*m); k++)
    {
    for(int i = 0; i < n; i++)
    {
    for (int j = 0; j < m; j++)
    {
    if (i + 1 == n and j + 1 == m)
    {
    continue;
    }
    else {
    if (j + 1 == m and arr[i][j] > arr[i+1][0])
    {
    swap(arr[i][j], arr[i + 1][0]);
    }
    else
    {
    if(arr[i][j] > arr[i][j+1])
    {
    swap(arr[i][j],arr[i][j + 1]);
    }
    }

    }
    }
    }
    }
    }

    int main() {
    int n = 5, m = 8;
    int k = 4;
    int arr[n][m];
    srand(time(NULL));
    for (int i = 0; i < n; i++){ //заполнения масива
    for (int j = 0; j < m; j++)
    {
    arr[i][j] = rand()%100;
    }
    }
    cout << "Исходный масив" << endl;
    for (int i = 0; i < n; i++){ // вывод исходного масива
    for (int j = 0; j < m; j++)
    {
    cout << setw(k) << arr[i][j];
    }
    cout << endl;
    }

    // сортировка

    cout << "масив" << endl;
    for (int i = 0; i < n; i++){ // вывод отсортированого масива
    for (int j = 0; j < m; j++)
    {
    cout << setw(k) << bubble[i][j] ;
    }
    cout << endl;
    }

    return 0;
    }

     
  2. DarkUnicorn
    DarkUnicorn May 16, 2019 Не учи меня жить. Лучше помоги материально. 84 Apr 2, 2019
    в чём проблема?
     
  3. DarkUnicorn
    DarkUnicorn May 16, 2019 Не учи меня жить. Лучше помоги материально. 84 Apr 2, 2019
    я сижу вчитываюсь и не могу понять нихера, объясни, что ты хочешь реализовать
     
  4. Metal_inactive
    Metal_inactive Topic starter May 16, 2019 0 Aug 24, 2017
    Нужно сделать сортировку двухмерного массива с помощью bubble sort. Но когда программа запускается то на выходе 1 1 1 1

    [IMG]
     
  5. Metal_inactive
    Metal_inactive Topic starter May 16, 2019 0 Aug 24, 2017
    Если делаю без функции то все отлично работает
     
  6. de9x
    de9x May 16, 2019 Frontend developer 141 Jan 3, 2019
    нихера не понятно. блять, вот зачем лолз добавлял
    Code
    , если ей никто не пользуется.
     
  7. de9x
    de9x May 16, 2019 Frontend developer 141 Jan 3, 2019
    p. s. просто вставь свой код в *SRC*тут код*/SRC*
    * - это квадратная скобка
     
  8. Metal_inactive
    Metal_inactive Topic starter May 16, 2019 0 Aug 24, 2017
    Извиняюсь сейчас исправлю
     
  9. Metal_inactive
    Metal_inactive Topic starter May 16, 2019 0 Aug 24, 2017
    Code

    #include <iostream>
    #include <iomanip>
    #include <cstdlib>
    using namespace std;
    void bubble(int** arr, int n , int m)
    {

    for (int k = 0; k <= (n*m); k++)
    {
    for(int i = 0; i < n; i++)
    {
    for (int j = 0; j < m; j++)
    {
    if (i + 1 == n and j + 1 == m)
    {
    continue;
    }
    else {
    if (j + 1 == m and arr[i][j] > arr[i+1][0])
    {
    swap(arr[i][j], arr[i + 1][0]);
    }
    else
    {
    if(arr[i][j] > arr[i][j+1])
    {
    swap(arr[i][j],arr[i][j + 1]);
    }
    }

    }
    }
    }
    }
    }

    int main() {
    int n = 5, m = 8;
    int k = 4;
    int arr[n][m];
    srand(time(NULL));
    for (int i = 0; i < n; i++){ //заполнения масива
    for (int j = 0; j < m; j++)
    {
    arr[i][j] = rand()%100;
    }
    }
    cout << "Исходный масив" << endl;
    for (int i = 0; i < n; i++){ // вывод исходного масива
    for (int j = 0; j < m; j++)
    {
    cout << setw(k) << arr[i][j];
    }
    cout << endl;
    }

    // сортировка

    cout << "масив" << endl;
    for (int i = 0; i < n; i++){ // вывод отсортированого масива
    for (int j = 0; j < m; j++)
    {
    cout << setw(k) << bubble[i][j] ;
    }
    cout << endl;
    }

    return 0;
    }
     
  10. de9x
    de9x May 16, 2019 Frontend developer 141 Jan 3, 2019
    ты балда
     
  11. de9x
    de9x May 16, 2019 Frontend developer 141 Jan 3, 2019
    Code
     [SRC]
    [/SRC]
     
  12. BlackNinja_inactive216139
    Code
    #include <stdio.h>

    void swap(int *xp, int *yp)
    {
    int temp = *xp;
    *xp = *yp;
    *yp = temp;
    }

    void bubbleSort(int arr[], int n)
    {

    int i, j;
    bool swapped;
    for (i = 0; i < n-1; i++)
    {
    swapped = false;
    for (j = 0; j < n-i-1; j++)
    {
    if (arr[j] > arr[j+1])
    {
    swap(&arr[j], &arr[j+1]);
    swapped = true;
    }
    }

    if (swapped == false)
    break;
    }
    }

    void printArray(int arr[], int size)
    {
    int i;
    for (i=0; i < size; i++)
    printf("%d ", arr[i]);
    printf("n");
    }
    int main()
    {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr)/sizeof(arr[0]);
    bubbleSort(arr, n);
    printf("Sorted array: \n");
    printArray(arr, n);
    return 0;
    }
     
  13. Metal_inactive
    Metal_inactive Topic starter May 16, 2019 0 Aug 24, 2017
    de9x, та все нормально)
     
  14. Metal_inactive
    Metal_inactive Topic starter May 16, 2019 0 Aug 24, 2017
    Может быть, просто не особо на форумах сижу)
     
  15. DarkUnicorn
    DarkUnicorn May 16, 2019 Не учи меня жить. Лучше помоги материально. 84 Apr 2, 2019
    Metal_inactive, зачем так сложно? тебе нужна именно функция отдельная?
     
  16. Metal_inactive
    Metal_inactive Topic starter May 16, 2019 0 Aug 24, 2017
    Сама функция отказывается работать хотелось бы понять почему.
     
  17. DarkUnicorn
    DarkUnicorn May 16, 2019 Не учи меня жить. Лучше помоги материально. 84 Apr 2, 2019
    Внимательно посмотри. У тебя одномерный массив. Почему у него сразу i и j
     
  18. Metal_inactive
    Metal_inactive Topic starter May 16, 2019 0 Aug 24, 2017
    Это двухмерный массив.Если я код функции просто вставлю между вводом и выводом, то всё работает.
     
  19. Metal_inactive
    Metal_inactive Topic starter May 16, 2019 0 Aug 24, 2017
    А я хочу сделать через функцию и не могу понять как, весь инет перерыл никакой полезной инофрмации
     
  20. DarkUnicorn
    DarkUnicorn May 16, 2019 Не учи меня жить. Лучше помоги материально. 84 Apr 2, 2019
Loading...
Top