程序员必备排序之冒泡排序、快速排序

上篇讲了插入排序本篇讲交换排序,所谓交换排序便是根据序列中俩个元素关键字的比较结果来对换这俩个记录在序列中的位置。

各排序算法的比较:

程序员必备排序之冒泡排序、快速排序_第1张图片

二、交换排序

2.1冒泡排序

1、基本思想:假设待排序表长为N,从后往前(或从前往后)俩俩比较相邻元素的值,若为逆序则交换它们直到序列比较完,称为一趟冒泡。最多经过N-1趟冒泡就能把所有元素排序完。
2、代码实现(优化版):
package sort;

public class BubbleSort {
		public BubbleSort(int[] a){
			boolean falg ;		
			for(int i=0;ii;j--){	        //一趟冒泡的过程
					if(a[j]

2.2快速排序

1、基本思想:快速排序是基于分治策略,在待排序的表中选择任意一元素p作为基准。将比p大的元素移动到p后,将比p小的元素移动到p之前,则p放在了其最终的位置上,再对前后俩子表分别重复上述操作即可。
2、代码实现:
package sort;

public class QuickSort {

	public void  QuickedSort(int[] a,int low,int high){
		if(low=pivot)		high--;
			a[low]=a[high];				//比枢纽小的值移动到左边
			while(low


你可能感兴趣的:(数据结构算法)