1. 程式人生 > >Java四種排序方法及99乘法口訣表

Java四種排序方法及99乘法口訣表

import java.util.Arrays;

public class Sort {


	/**排序
	 * @param args
	 */
	public static void main(String[] args) {
		int array[]={12,34,2,5,8,11,9,22};
		quickSort(array);
		selectSort(array);
		bubbleSort(array);
		insertSort(array);
		method1(9);
		method2(9);
	}
	/**
	 * 快速排序
	 * @param array
	 */
	public static void quickSort(int[] array){
		 Arrays.sort(array);
		 System.out.print("快速排序後的結果:");
		 for(int i:array){
			 System.out.print(i+" ");
		 }
		 System.out.println();
	}
	
	/**
	 * 選擇排序
	 * @param array
	 */
	public static void selectSort(int[] array){
		for(int i=0;i<array.length;i++){
			for(int j=i+1;j<array.length;j++){
				if(array[i]<array[j]){
					int temp=array[i];
					array[i]=array[j];
					array[j]=temp;
				}
			}
		}
		System.out.print("選擇排序後的結果:");
		for(int i=0;i<array.length;i++){
			System.out.print(array[i]+" ");
		}
		System.out.println();
	}
	/**
	 * 氣泡排序
	 * @param array
	 */
	public static void bubbleSort(int[] array){
		boolean flag = true;
		for(int i=0;i<array.length-1&&flag;i++){
			flag = false;
			for(int j=0;j<array.length-i-1;j++){
				if(array[j]>array[j+1]){
					int temp=array[j];
					array[j]=array[j+1];
					array[j+1]=temp;
					flag = true;
				}
			}
		}
		System.out.print("氣泡排序後的結果:");
		for(int i=0;i<array.length;i++){
			System.out.print(array[i]+" ");
		}
		System.out.println();
	}
	/**
	 * 插入排序
	 * @param array
	 */
	public static void insertSort(int[] array){
		for(int i=1;i<array.length;i++){
			for(int j=i;j>0;j--){
				if(array[j]>array[j-1]){
					int temp=array[j];
					array[j]=array[j-1];
					array[j-1]=temp;
				}
			}
		}
		System.out.print("插入排序後的結果:");
		for(int i=0;i<array.length;i++){
			System.out.print(array[i]+" ");
		}
		System.out.println();
	}
	/**
	 * 遞迴99乘法口訣表
	 * @param i
	 */
	public static void method1(int i) {
		if (i == 1) {
			System.out.print("1*1=1\t\n"); 
		} else {
			method1(i - 1); 
			for (int j = 1; j <= i; j++) { 
				System.out.print(j + "*" + i + "=" + j * i + "\t");
			}
			System.out.println();
		}
	}
	/**
	 * 巢狀for迴圈99乘法口訣表
	 * @param num
	 */
	public static void method2(int num) {
		int i, j;
		for (i = 1; i <= num; i++) {
			for (j = 1; j <= i; j++) {
				System.out.print(j + "*" + i + "=" + i * j + "\t");
			}
			System.out.println();
		}
	}
}