Selectionsort distanza

di Anonimizzato23873 il
3 risposte
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

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

    50 , 1, 6, 1, 3, 28
  • Ma non penso sia sbagliata, anche se non trovo altre risposte..
  • Io penso sia sbagliato ...
Devi accedere o registrarti per scrivere nel forum
3 risposte