java几种排序

1.冒泡排序

/**
	 * 冒泡排序
	 * 
	 * @param array
	 * @return
	 */
	public static int[] mpSort(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;
				}
			}
		}
		return array;
	}

2. 选择排序

/**
	 * 选择排序
	 * 
	 * @param array
	 * @return
	 */
	public static int[] xzSort(int array[]) {
		int temp;
		for (int i = 0; i < array.length; i++) {
			int index = i;
			for (int j = i + 1; j < array.length; j++) {
				if (array[index] < array[j])
					index = j;
				if (index != i) {
					temp = array[i];
					array[i] = array[index];
					array[index] = temp;
				}
			}
		}
		return array;
	}

3.快速排序

	/**
	 * 快速排序
	 * 
	 * @param array
	 * @return
	 */
	public void quickSort(int array[], int low, int high) {// 传入low=0,high=array.length-1;
		int pivot, p_pos, i, t;// pivot->位索引;p_pos->轴值。
		if (low < high) {
			p_pos = low;
			pivot = array[p_pos];
			for (i = low + 1; i <= high; i++)
				if (array[i] > pivot) {
					p_pos++;
					t = array[p_pos];
					array[p_pos] = array[i];
					array[i] = t;
				}
			t = array[low];
			array[low] = array[p_pos];
			array[p_pos] = t;
			// 分而治之
			quickSort(array, low, p_pos - 1);// 排序左半部分
			quickSort(array, p_pos + 1, high);// 排序右半部分
		}
	}

4.完整测试代码

public class MpsortTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] array = { 1, 3, 5, 7, 8, 9, 6, 4, 2 };
		mpSort(array);
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}

	}

	/**
	 * 冒泡排序
	 * 
	 * @param array
	 * @return
	 */
	public static int[] mpSort(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;
				}
			}
		}
		return array;
	}

	/**
	 * 选择排序
	 * 
	 * @param array
	 * @return
	 */
	public static int[] xzSort(int array[]) {
		int temp;
		for (int i = 0; i < array.length; i++) {
			int index = i;
			for (int j = i + 1; j < array.length; j++) {
				if (array[index] < array[j])
					index = j;
				if (index != i) {
					temp = array[i];
					array[i] = array[index];
					array[index] = temp;
				}
			}
		}
		return array;
	}

	/**
	 * 快速排序
	 * 
	 * @param array
	 * @return
	 */
	public void quickSort(int array[], int low, int high) {// 传入low=0,high=array.length-1;
		int pivot, p_pos, i, t;// pivot->位索引;p_pos->轴值。
		if (low < high) {
			p_pos = low;
			pivot = array[p_pos];
			for (i = low + 1; i <= high; i++)
				if (array[i] > pivot) {
					p_pos++;
					t = array[p_pos];
					array[p_pos] = array[i];
					array[i] = t;
				}
			t = array[low];
			array[low] = array[p_pos];
			array[p_pos] = t;
			// 分而治之
			quickSort(array, low, p_pos - 1);// 排序左半部分
			quickSort(array, p_pos + 1, high);// 排序右半部分
		}
	}
}
发布了50 篇原创文章 · 获赞 25 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/zhaolinxuan1/article/details/82732891