1、冒泡排序
算法思想
- 冒泡排序是交换类排序。
- 第一趟:第一个元素比第二个元素比较大,则交换它们,第二个元素比第三个元素比较大,则交换它们,……。这样保证最后一个元素最大。
- 第二趟:第一个元素比第二个元素比较大,则交换它们,第二个元素比第三个元素比较大,则交换它们,……。这样保证倒数第二个元素第二大。
- …….
- 假如中间有一趟没有交换元素,说明已经有序了
2、选择排序
算法思想
- 第一趟让最小的元素处于最左边的位置,第二趟让第二小的元素处于左边第二的位置…,此排序算法不是交换类排序
3、快速排序
```java
private static void quickSort(Integer[] arr, Integer start, Integer end){
if (start > end){
return;
}
// 中间一个数确定位置,两边数组小于、大于它
Integer mid = sortOne(arr, start, end);
quickSort(arr, start, mid -1);
quickSort(arr, mid + 1, end);
}
private static Integer sortOne(Integer[] arr, Integer start, Integer end){
int temp = arr[start];
int low = start + 1;
int high = end;
while (low <= high){
while (arr[low] <= temp && low <= high){
low++;
}
while (arr[high] > temp && low <= high){
high—;
}
if (low <= high){
int t = arr[low];
arr[low] = arr[high];
arr[high] = t;
}
}arr[start] = arr[high];arr[high] = temp;return high;
}
```