首页 > 技术文章 > 【数据结构排序】之二交换排序

wycBlog 2017-07-07 15:48 原文

1、交换排序包括冒泡排序和快速排序两种方式

2、所谓交换排序就是通过两两比较待排序元素的关键字,发现两个元素的次序相反时即进行交换,直到没有反序的元素为止。

3、                                                                                    冒泡排序

 

注意:冒泡排序每趟产生的有序区一定是全局有序区域,也就是说每趟产生的有序区中所有元素都归位了。

/*

核心代码

*/

void bubbleSort(int array[],int arrayLength) {

int length = arrayLength;
	boolean flag = true; //一个标记
	for (int i = 0; i < length-1 && flag; i++) {//加这个条件就是当有序的时候就不用重复后面的操作了
	   flag = false;//进入循环体,就置为false
	   for (int j = 0; j < length - i - 1; j++) {
		if (array[j] > array[j + 1]) {
		  swap(j, j + 1, array);// 相邻的两个元素比较,将大的放到最右边
		  flag = true;//存在反序的就将flag置为true
		}
	  }
	}
}
 void swap(int oneIndex, int anotherIndex, int array[]) {
		int temp = array[oneIndex];
		array[oneIndex] = array[anotherIndex];
		array[anotherIndex] = temp;
	}

优化后的算法解决了有序数组重复比较的问题,对象能有所优化

参考博文:http://blog.csdn.net/ysjian_pingcx/article/details/8653732

4、

 

推荐阅读