Array¾È¿¡ ÀÖ´Â µ¥ÀÌÅ͵éÀÇ Áß¾Ó°ª(median)À» ranodmized-selectionÀ» ÅëÇØ ±¸ÇÑÈÄ
Àüü array¸¦ Á¤¸®ÇÏ·Á°íÇϴµ¥¿ä,
public int[] QuicksortMedian(int r_array[], int start, int end)
{
if(start < end)
{
int pivot = randomSelect(r_array, start, end, (start+end)/2);
QuicksortMedian(r_array, start, pivot-1);
QuicksortMedian(r_array, pivot+1, end);
}
}
´Ü¼øÈ÷ À§¿Í °°ÀÌ Çϸé Á¤¸®°¡ µÉÁپ˾Ҵµ¥ Áß°£ Áß°£¿¡ Á¤¸®¾ÈµÇ´Â°ªµéÀÌ ¸¹¾Ò½À´Ï´Ù.
¸¶Áö¸· index¸¦ pivotÀ¸·ÎÇÏ´Â ±âº» Quicksort°¡
int pivot = partition(r_array, start, end;
QuicksortLastPivot(r_array, start, pivot-1);
QuicksortLastPivot(r_array, pivot+1, end);
ÀÌ·± ½ÄÀÌ¾î¼ ºñ½ÁÇÏ°Ô ÇÏ¸é °¡´ÉÇÒÁÙ ¾Ë¾Ò´Âµ¥ ÀüÇô ´Ù¸£´õ¶ó±¸¿ä.
Ȥ½Ã ¿Ö ¾ÈµÇ´ÂÁö ¾Æ½Ã´ÂºÐÀÌ °è½Ã´Ù¸é ¼³¸íÁ» ºÎŹµå¸±²²¿ä ¤Ð |