다음은 Stooge 정렬을 위한 Java 프로그램입니다 -
예시
import java.io.*; public class Demo { static void stooge_sort(int my_arr[], int l_val, int h_val){ if (l_val >= h_val) return; if (my_arr[l_val] > my_arr[h_val]){ int temp = my_arr[l_val]; my_arr[l_val] = my_arr[h_val]; my_arr[h_val] = temp; } if (h_val-l_val+1 > 2){ int temp = (h_val-l_val+1) / 3; stooge_sort(my_arr, l_val, h_val-temp); stooge_sort(my_arr, l_val+temp, h_val); stooge_sort(my_arr, l_val, h_val-temp); } } public static void main(String args[]){ int my_arr[] = {12, 34, 67, 91, 11, 0, 89, 102, 39}; int n = my_arr.length; stooge_sort(my_arr, 0, n-1); System.out.println("The array after performing stooge sort is "); for (int i=0; i < n; i++) System.out.print(my_arr[i] + " "); } }
출력
The array after performing stooge sort is 0 11 12 34 39 67 89 91 102
Demo라는 클래스에는 배열, 왼쪽, 높이 및 오른쪽 값을 매개변수로 사용하는 'stooge_sort'라는 함수가 포함되어 있습니다. 왼쪽 값이 오른쪽 값보다 크면 아무 것도 반환되지 않습니다. 배열의 왼쪽 값이 배열의 오른쪽 값보다 크면 간단한 스와핑을 수행합니다.
height 값과 left 값을 기준으로 leftvalue와 height 값을 전달하여 'stooge_sort' 함수를 호출합니다. 메인 함수에서 배열이 정의되고 그 길이가 값에 저장됩니다. 이 값을 전달하여 함수를 호출하고 콘솔에 출력을 표시합니다.