JAVA 4种常用排序算法,总是记不住,记录下来,免得以后番网页

public class ArraySort {

	public static void main(String[] args) {
		int[] array=getArray();
		selectSort(array);
		//insertSort(array);
		/*bubbleSort(array);
		quickSort(array,0,array.length-1);
		System.out.println("\n快速排序:");
		for(int i:array)
			System.out.print(i+",");*/
	}
	
	public static int[] getArray(){
		int[] array=new int[10];
		for(int i=0;iarray[j]){
					index=j;
				}
			}
			if(index!=i){
				int temp=array[i];
				array[i]=array[index];
				array[index]=temp;
			}
		}
		for(int i:array)
			System.out.print(i+",");
	}
	/**
	 * @author ZHI
	 * 插入排序,预设第一个数值为已经排序好的,然后从后面的数组中拿第一个数字放到前面已经排序
	 * 好的数组中,在放入过程中不停比较,大于该数字的则向后移一位,直到新数字放入已排序好的数
	 * 组中之后,仍然是排序好的数组
	 */
	public static void insertSort(int[] array){
		System.out.println("\n插入排序:");
		int key;
		for(int i=1;i0&&key0&&keyi;j--)
	 *   
	 *   * * * * * *
	 *     * * * * *
	 *       * * * *
	 *         * * *
	 *           * *
	 *             * 
	 */
	public static void bubbleSort(int[] array){
		System.out.println("\n冒泡排序:");
		for(int i=0;iarray[j+1]){
					int temp=array[j+1];
					array[j+1]=array[j];
					array[j]=temp;
				}
			}
		}
		for(int i:array)
			System.out.print(i+",");
	}
	/**
	 * @author ZHI
	 * 快速排序,把一个数组分成两部分,取第一个为关键值key,先把右边小于key的值
	 * 放到左边,然后再把左边大于key的值放到右边,直到上下标相等,得到一个中间
	 * 下标,把key放到该下标中。最后在中间值下标处把数组一分为二,分别重复(递归)
	 * 上述步骤,直到结束
	 */
	public static void quickSort(int[] array,int start,int end){
		if(start>=end)
			return;   //递归出口,所有递归支路都会出现上下标相等,这是递归结束
		int l=start,r=end;
		int mid;
		int key=array[l];//因为key值取出,故整个数组有一个空的位置给予数组移动
		while(l=key && l=key && start

你可能感兴趣的:(JAVA)