Ordenar List com algoritmo

Pessoal, preciso ordenar esta List que está no meu código… Porém não posso usar aqueles métodos Arrays.sort, Collections.sort ou algo do tipo.

[code]
package com.pcs.questoes;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import com.pcs.resposta.TiposRespostas;
import com.pcs.modelo.*;

public class TiposQuestoes {
public void exerciciosTipoSimples() {

	TiposRespostas tipos = new TiposRespostas();
	
	List<Fruta> listaFrutas = new ArrayList<Fruta>();
	Fruta l = new Laranja();
	l.setPreco("R$ 20,00");
	listaFrutas.add(l);
	Fruta p = new Pera();
	p.setPreco("R$ 10,00");
	listaFrutas.add(p);
	Fruta p2 = new Pera();
	p.setPreco("R$ 11,00");
	listaFrutas.add(p2);
	Fruta f1 = new Limao();
	f1.setPreco("R$ 5,00");
	listaFrutas.add(f1);
	Fruta f2 = new Limao();
	f2.setPreco("R$ 5,00");
	listaFrutas.add(f2);
	
	
	List<Fruta> listaFrutasOrdenadasPreco = tipos.ordenaListaPorPreco(listaFrutas);
	// Ordenar por tipos em ordem alfabética (Laranja, Limao, Pera) e ordenar dentro dos tipos por preço. 
	List<Fruta> listaFrutasOrdenadasPorTipoePreco = tipos.ordenaListaPorTipoEPreco(listaFrutas);
	
}

}[/code]

[code]
package com.pcs.resposta;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import com.pcs.modelo.Fruta;

public class TiposRespostas {

public List<Fruta> ordenaListaPorPreco(List<Fruta> listaFrutas) {
	
	
	return null;
}

public List<Fruta> ordenaListaPorTipoEPreco(List<Fruta> listaFrutas) {
	
	return null;
}

}[/code]

Como ordenar usando apenas algoritmo?

existem varios algoritmos pra fazer isso (bubblesort, quicksort, mergesort…) cada um com suas vantagens e desvantagens, da uma pesquisada no google por algoritmos de ordenação que vc acha bastante coisa

http://www.devmedia.com.br/entendendo-o-algoritmo-bubble-sort-em-java/24812

O que você tentou?