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、