Buscar

algoritmo SELECTION SORT

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

algoritmo SELECTION SORT
descobre qual o maior elemento e o posiciona em n - 1, o segundo maior em n - 2…
def findMax(a, size):
	index = 0
	max = a[index]
	for i in range(1, size):
		if a[1] > max:
			max = a[i]
			index = i
	return index
def selectionSort(a):
	aux = None
	for i in range(len(a) - 1, -1, -1):
		index = findMax(a, i + 1)
		if = a[index] > a[i]:
			print('max : {0}, a : {1}'.format(a[index], str(a)))
			aux = a[index]
			a[index] = a[i]
			a[i] = aux
if __name__ == '__main__':
	a = [23, 34, 1, 200]
	print(a)
	selection(a)
	print(a)
Algoritmo em Java para ordenar vetor independente de se tratar de número ou String. 
Interface Sorter com método +sort(a) herdando de classes Insertion(+sort(a)) e Selection(+sort(a)) abstratos
package br.edu.uni7.pod;
public interface Sorter<T>{
	public void sort(T[] items, Comparator<T> comparator);	
}
package br.edu.uni7.pod;
public class Insertion<T, C extends Comparator<T>> implements Sorter<T, C>{
	public void sort(T[] items, C comparator);	
	for(int i = 1; i < items.length; i++{
		int j = i;
		
		T aux = null;
		while(j > 0 && compator.compare(items[j], items[j - 1]) < 0){
			aux = items[j - 1];
			items[j - 1] = items[j];
			items[j] = aux;
			j = j - 1;
		}
	}
}
package br.edu.uni7.pod;
public class InsertionMain{
	public static void main(String[] args){
		Integer[] a = {23, 12, 4, 2, 1};
		Comparator<Integer> comparator = new Comparator<Integer>(){
			@Override
			public int compare(Integer o1, Integer o2){
				return o1 - o2;
			}
		}
		Sorter<Integer, Comparator<Integer>> sorter = new Insertion<Integer, Comparator<Integer>>();
		sorter.sort(a, comparator);
		System.out.println(Arrays.toString(a));
		String[] names = {"Roberio", "Vitor", "Andrea", "Lucas"};
		Comparator<String> stringComparator = new Comparator<String>(){
			@Override
			public int compare(String o1, String o2){
				return o1.compareTo(o2);
			}
		}
	}	
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais