Selectionsort distanza

di 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

Devi accedere o registrarti per scrivere nel forum
3 risposte