Advertisements
plz modify this program so that it can take input as integers and string both.....
public class heap_Sort{ public static void main(String a[]){ int i; int arr[] = {1,3,4,5,2};
System.out.println("\n Heap Sort\n---------------\n"); System.out.println("\n Unsorted Array\n\n"); for (i = 0; i < arr.length; i++) System.out.print(" "+arr[i]); for(i=arr.length; i>1; i--){ fnSortHeap(arr, i - 1); } System.out.println("\n Sorted array\n---------------\n"); for (i = 0; i < arr.length; i++) System.out.print(" "+arr[i]);
}
public static void fnSortHeap(int array[], int arr_ubound){ int i, o; int lChild, rChild, mChild, root, temp; root = (arr_ubound-1)/2;
for(o = root; o >= 0; o--){ for(i=root;i>=0;i--){ lChild = (2*i)+1; rChild = (2*i)+2; if((lChild <= arr_ubound) && (rChild <= arr_ubound)){ if(array[rChild] >= array[lChild]) mChild = rChild; else mChild = lChild; } else{ if(rChild > arr_ubound) mChild = lChild; else mChild = rChild; } if(array[i] < array[mChild]){ temp = array[i]; array[i] = array[mChild]; array[mChild] = temp; } } } temp = array[0]; array[0] = array[arr_ubound]; array[arr_ubound] = temp; return;
} }