`
jin8000608172
  • 浏览: 141798 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVA 经典排序算法(冒泡、插入、选择、快速)

阅读更多
package com.xxx;

public class SortTest {

	public static void main(String[] args) {
		int[] arrays = {4,7,6,1,9};
//		selectSort(arrays);
//		bubbleSort(arrays);
//		insertSort(arrays);
		quickSort(arrays, 0, arrays.length-1);
		for(int a:arrays) {
			System.out.println(a);
		}

	}
	
	/**
	 * 冒泡排序
	 * @param arrays
	 */
	public static void  bubbleSort(int[] arrays) {
		if(arrays.length==0) {
			return;
		}
		for(int i=0;i<arrays.length;i++) {
			for(int j=0;j<arrays.length;j++) {
				if(arrays[i]<arrays[j]) {
					int temp=arrays[i];
					arrays[i]=arrays[j];
					arrays[j]=temp;
				}
			}
		}
	}
	
	/**
	 * 插入排序
	 * @param arrays
	 */
	public static void insertSort(int[] arrays) {
		if(arrays.length==0) {
			return;
		}
		int current;
		for(int i=0;i<arrays.length-1;i++) {
			int preIndex=i;
			current=arrays[i+1];
			while(preIndex>=0&&current<arrays[preIndex]) {
				arrays[preIndex+1]=arrays[preIndex];
				preIndex--;
			}
			arrays[preIndex+1]=current;
		}
	}
	
	/**
	 * 选择排序
	 * @param arrays
	 */
	public static void selectSort(int[] arrays) {
		if(arrays.length==0) {
			return;
		}
		for(int i=0;i<arrays.length;i++) {
			int minIndex=i;
			for(int j=i;j<arrays.length;j++) {
				if(arrays[j]<arrays[minIndex]) {
					minIndex=j;
				}
			}
			int temp=arrays[minIndex];
			arrays[minIndex]=arrays[i];
			arrays[i]=temp;
		}
	}
	
	/**
	 * 快速排序
	 * @param arrays
	 * @param low
	 * @param high
	 */
	public static void quickSort(int[] arrays,int low,int high) {
		if(low<high) {
			int part=partition(arrays, low, high);
			quickSort(arrays,low,part-1);
			quickSort(arrays,part+1,high);
		}
	}
	
	private static int partition(int[] arrays,int low,int high) {
		int pivot=arrays[low];
		while(low<high) {
			while(low<high&&arrays[high]>=pivot) {
				high--;
			}
			arrays[low]=arrays[high];
			while(low<high&&arrays[low]<=pivot) {
				low++;
			}
			arrays[high]=arrays[low];
			
		}
		arrays[low]=pivot;
		return low;
	}

}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics