交换排序
利用交换数据元素的位置进行排序的方法称为交换排序
常用的交换排序方法有
- 冒泡排序
- 快速排序
其中快速排序是一种分区交换方法[分治]
冒泡排序[相邻交换 一次交换只能消除一个逆序]
基本思想
设数组a中存放了n个数据元素,循环进行n-1次排序
第一次,依次比较相邻两个元素a[i]和a[i+1],若为逆序,则交换两个元素,这样进行n-1次排序后数值最大的数据放在数组的末尾
第二次时,数据元素个数减1,操作方法与第一次类似,进行n-2次比较
排序过程
代码实现
有些待排序元素已经基本有 因此可以设置一个flag变量用于标记本次排序过程是否有交换动作,若没有则说明已经排好序,就可提前结束排序过程
Java代码
/**
* 冒泡排序
*/
public static void bubbleSort(int[] arr) {
int temp;
/*设置一个flag变量用于标记本次排序过程是否有交换动作,若没有则说明已经排好序,就可提前结束排序过程*/
boolean flag = false;
for (int i = 1; i < arr.length && !flag; i++) {
flag = true;
for (int j =