W jaki sposób działa sortowanie quick sort?jak przerobic

0
import java.awt.Graphics;
import java.util.Random;

import javax.swing.JPanel;


public class SortPanel extends JPanel implements Runnable{
	int [] tab;
	final int N=300;
	public SortPanel()
	{
		Random r = new Random();
		tab = new int [N];
		for (int i=0; i<300;i++)
			tab[i]=r.nextInt(255);
	}
	@Override
	public void paint(Graphics g) {
		// TODO Auto-generated method stub
		super.paint(g);
		int h = this.getHeight();
		for(int i =0; i<N;i++)
			g.drawLine(i,h,i,h-tab[i]);
	}
	public void run (){
		for (int n=0;n<N-1;n++){
			for (int m=n+1;m<N;m++)
			{
				int pom=tab[n];
				if(tab[m]<pom)
				{
					tab[n]=tab[m];
					tab[m]=pom;           
				}}
				try {
					Thread.sleep(50);
					this.repaint();
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
			
		}
		
	}}
	

}

Czy mógłby ktoś napisać mi w jaki sposób działa sortowanie quick sort, bo nie potrafie tego typu sortowania zamienic na quick sort. Może to przez to ze nie dokonca rozumiem logike jego przebiego. Wiem ze jezeli mam ten kod powyzej to zeby to musze podzielic go na dwie czesci lewa i prawa ,ustalajac srodek . ale jak ustalic ten srodek?i w jaki sposob opisac lewa i prawa strone a pozniej ja scalic. Dziekuje za odpowiedzi

1 użytkowników online, w tym zalogowanych: 0, gości: 1