Bubble Sort

public class BubbleSort {
		
	static int step=0;
	
	public static int[] sort (int[] a) {
		int tmp, i;		
		for(i=0; i<a.length-1; i++) {
			for(int j=0; j<a.length-1-i; j++) {
				step++;
				System.out.println("Step "+step+" Comparing a["+j+"]="+a[j]+" with a["+(j+1)+"]="+a[j+1]);
				if(a[j]>a[j+1]) {
					System.out.println("Swaping a["+(j+1)+"]="+a[j+1]+" with a["+j+"]="+a[j]);
					tmp = a[j];
					a[j] = a[j+1];
					a[j+1] = tmp;
				} else System.out.println("Nothing is being changed this time.");				
				printArray(a);				
			}
		}
		return a;		
		
	}
	public static void printArray(int[] a) {
		String v = ", ";
		int i;
		for(i=0; i<a.length-1; i++) {		
			if(i==a.length-2) {
				v = "\n\n";
			}
			System.out.print(a[i]+v);
		}
	}	
	public static void main(String[] args) {
		int[] a = {2, 44, 66, 21, 5, 53, 32, 11, 4, 18, 49, 75, 78, 79};
		
		System.out.print("Initial array: ");
		printArray(a);		
		
		int b[] = sort(a);
		
		System.out.print("Processed array: ");
		printArray(b);
	}
}

 Selection Sort

public class SelectionSort {
	
	static int step = 0;
	
	public static int[] sort(int[] array) {
		return sort(array, 0, array.length-1);
	}
	public static int[] sort(int[] array, int min, int max) {
				
		if(min==max) return null;
		
		step++;
		System.out.print("Step "+step);
		
		int index = select(array, min, max);
		
		if(index!=min) {
			int tmp = array[min];
			array[min] = array[index];
			array[index] = tmp;			
			System.out.println(" Element a["+min+"]="+array[min]+" is being interchanged with a["+index+"]="+array[index]);
		} else System.out.println(" Nothing is being changed this time, jumping to the next element");
		
		printArray(array);
		
		sort(array, min+1, max);		
		return array;
	}
	public static int select(int[] array, int min, int max) {
		int index = min;
		for(int i=min+1; i<=max; i++) if(array[i]<array[index]) index=i;
		return index;
	}
	public static void printArray(int[] a) {
		String v = ", ";
		int i;
		for(i=0; i<a.length-1; i++) {		
			if(i==a.length-2) {
				v = "\n\n";
			}
			System.out.print(a[i]+v);
		}
	}
	public static void main(String[] args) {
		int[] a = {2, 44, 66, 21, 5, 53, 32, 11, 4, 18, 49, 75, 78, 79};
		
		System.out.print("Initial array: ");
		printArray(a);		
		
		int[] b = sort(a);
		
		System.out.print("Processed array: ");
		printArray(b);
		
	}

}
Powered by PepisCMS