Untitled

 avatar
sangngoc
plain_text
a year ago
2.2 kB
3
Indexable
public class MergeSort {
	
	public static int[] megre(int[] arrLeft, int[] arrRight) {
		int[] result = new int [arrLeft.length + arrRight.length];
		int left = 0;
		int right = 0;
		int index = 0;
		while(left < arrLeft.length && right<arrRight.length){
			if(arrLeft[left] < arrRight[right]){
				result[index++] = arrLeft[left++];
			}else {
				result[index++] = arrRight[right++];
			}
		}
		while (left < arrLeft.length) {
			result[index++] = arrLeft[left++];
		}
		while (right < arrRight.length) {
			result[index++] = arrRight[right++];
		}
		return result;
	}
	
	public static int[] mergeSort(int[] arr) {
		if(arr.length == 1) return arr;
		
		int midle = arr.length/2;
		int[] arrLeft = new int[midle];
		int[] arrRight = new int[arr.length - midle];
		for(int i = 0; i<midle;i++){
			arrLeft[i] = arr[i];
		}
		for(int i = midle;i<arr.length;i++){
			arrRight[i-midle] = arr[i];
		}
		int[] arr1 = mergeSort(arrLeft);
		int[] arr2 = mergeSort(arrRight);
		return megre(arr1, arr2);
	}
	
	
	
	public static void main(String[] args) {
		int[] arr = {10, 9, 11, 3, 1, 6, 2, 1, 3, 1};
		
		int[] a = mergeSort(arr);
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}
	}
}



public class QuickSort {
	
	public static void swap(int[] arr,int i,int j) {
		int temp = arr[i];
		arr[i] = arr[j];
		arr[j] = temp;
	}
	
	private static int pivot(int[] arr, int low, int high) {
		int pivot = arr[high];
		
		int i = low - 1;
		for(int j = low; j<=high-1;j++){
			if(arr[j] < pivot){
				i++;
				swap(arr, i, j);
			}
		}
		swap(arr, i+1, high);
		return i+1;
	}
	
	public static void quickSort(int[] arr, int low, int high){
		if(low < high){
			
			int p = pivot(arr, low, high);
			
			quickSort(arr, low, p-1);
			quickSort(arr, p+1, high);
		}
	}
	
	public static void main(String[] args) {
		
		int[] arr = { 10, 7, 8, 9, 1, 5 };
        int N = arr.length;
 
        // Function call
        quickSort(arr, 0, N - 1);
        System.out.println("Sorted array:");
        for(int i = 0; i < arr.length;i++){
        	System.out.print(arr[i] + " ");
        }
	}
}
Editor is loading...
Leave a Comment