Indeks najmniejszej liczby w tabeli.

0

Chcę najpierw bąbelkowo posortowac tablice, a potem porownac posortowana tablice z poczatkowa tablica żeby wyswietlic ktory element poczatkowej tablicy jest najmniejszy.
Wyniki wydaja się ok, ale jednak przy testowaniu tego kodu przez bota pewna wartosc jest zla.

#include <iostream>
using namespace std;

int tab[10000];
int bat[10000];
void Wczytywanie(int n)
{
    for(int i=0;i<n;i++){

    cin>>tab[i];
    bat[i]=tab[i];

}}

int porownanie (int n, int tab[], int bat[])
{

    for(int i=1;i<n;i++)
    {
        if ( tab[0]==bat[i-1] ) cout<<i<<" ";

    }

    return 0;
}

int Sort(int n, int tab[]){

    for (int i=0; i<n-1; i++){

        for (int j=0; j<n-1; j++)
        if (tab[j]>tab[j+1])
        swap(tab[j], tab[j+1]);
    }

return 0;
}

int main(){
int  n;
cin >> n;

Sort(n, tab);
porownanie(n,tab,bat);

return 0;}
0

Tablice nie za małe? Wygląda, że tak działa:

#include <iostream>

using namespace std;

 int porownanie (int n, int tab[], int bat[])
{

    for(int i=0; i<n; i++)
    {
        if ( bat[i] == tab[0] ) 
            cout<<i<<" <--";

    }

    return 0;
}

int Sort(int n, int tab[]){

    for (int i=0; i<n-1; i++){

        for (int j=0; j<n-1; j++)
        if (tab[j]>tab[j+1])
        swap(tab[j], tab[j+1]);
    }

return 0;
}

int main(){
int tab[4];
int bat[4];
int  n;
cin >> n;

for(int i=0;i<n;i++){

    cin>>tab[i];
    bat[i]=tab[i];
}

Sort(n, tab);

cout << "Printing arrays...tab:\n";
for (int i = 0; i < 4; i++)
    cout << tab[i] << " ";
cout << endl;
cout << "Secod array...bat: \n";
for (int i = 0; i < 4; i++)
    cout << bat[i] << " ";
cout << endl;
cout << " printed\n";
porownanie(n,tab,bat);

return 0;}
0

fredek, źle. Jak się tutaj okazało potrzebujesz użyć sortowania przez wybieranie, od minimalnej wartości.

1

W tym zagadnieniu nie potrzeba wcale używać sortowania.

0

Sortujesz tablice bąbelkowo aby znaleźć pozycję najmniejszego elementu w tablicy potrzebną do algorytmu sortowania przez wybieranie ... i tak ze złożoności O(n^2) otrzymujemy O(n^4) O(n^3).
Łap:

int index_of_min(int n, int tab[])
{
    int index = 0;
    for(int i = 1; i < n; i++) {
        if(tab[i] < tab[index])
            index = i;
    }
    return index;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0