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