Selectionsort distanza

di
Anonimizzato23873
il
3 risposte

Selectionsort distanza

Salve, da un bel po sto cercando di risolvere questo esercizio riguardante la distanza degli spostamenti che si effettuano quando si ordina un array con il selectionsort. Vi lascio la consegna del testo sotto.

Ho cercato di risolverlo con questo algoritmo, per i primi due esempi funziona, mentre per il terzo il risultato in output mi da 5 quando invece dovrebbe essere 7.
#include <iostream>
#include<string>
#include <fstream>
#include<string>
#include<sstream>
using namespace std;
ofstream out("C:\\Users\\Darkman\\Downloads\\output.txt");
selectionsort(int a[],int n)
{
	int k=0;
	int t;
	for(int i=0; i<n-1; i++)
	{
		t=i;
		for(int j=i+1; j<n; j++)
		{
			if(a[t]>a[j])
			{
				t=j;
			}
		}
		if(t!=i)
			k+=(t-i);
		int temp=a[i];
		a[i]=a[t];
		a[t]=temp;
	}
	cout<<k<<endl;
}
int main()
{
	int array[6]={50 ,1 ,6 ,13 ,3 ,28 };
	selectionsort(array,6);
}

3 Risposte

  • Re: Selectionsort distanza

    Potrebbe trattarsi di un errore di stampa nel testo ... magari la sequenza era

    50 , 1, 6, 1, 3, 28
  • Re: Selectionsort distanza

    Ma non penso sia sbagliata, anche se non trovo altre risposte..
  • Re: Selectionsort distanza

    Io penso sia sbagliato ...
Devi accedere o registrarti per scrivere nel forum
3 risposte