【算法】Java中的常见排序Sort
2017-06-15 14:28
253 查看
排序
已实现排序
冒泡排序 bubbleSort插入排序 insertSort
快速排序 quickSort
冒泡排序
/** * @param arr * @return * @description 冒泡排序 * @author paul * @date 2017年5月30日 下午9:49:35 * @update 2017年5月30日 下午9:49:35 * @version V1.0 */ public static int[] bubbleSort(int[] arr) { //数据长度只有1,则本身就是有序的 if (arr.length == 1) return arr; int temp; for (int i=0; i<arr.length-1; i++) { //没有进行交换表示数组已经为有序状态,可提前结束循环 boolean isOver = true; for (int j=0; j<arr.length-1; j++) { if (arr[j] > arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; isOver = false; } } if (isOver) break; } return arr; }
插入排序
/** * @param arr * @return * @description 插入排序 * @author paul * @date 2017年5月30日 下午10:09:52 * @update 2017年5月30日 下午10:09:52 * @version V1.0 */ public static int[] insertSort(int[] arr) { //数据长度只有1,则本身就是有序的 if (arr.length == 1) return arr; int temp; for (int i=1; i<arr.length; i++) { for (int j=i; j>0; j--) { if (arr[j] < arr[j-1]) { temp = arr[j]; arr[j] = arr[j-1]; arr[j-1] = temp; } } } return arr; }
快速排序
参考:《 啊哈!算法》
/** * @param arr * @return * @description 快速排序 * @author paul * @date 2017年5月30日 下午10:15:35 * @update 2017年5月30日 下午10:15:35 * @version V1.0 */< b27e /span> public static int[] quickSort(int[] arr, int left, int right) { //数据长度只有1,则本身就是有序的 if (arr.length == 1) return arr; if (left > right) return arr; int i=left,j=right,temp=arr[left],t;//temp存的是基准数 while (i != j) { //顺序很重要,先从右往左找 while (arr[j] >= temp && j > i) j--; //在从左往右找 while (arr[i] <= temp && i < j) i++; //交换两个数在数组中的位置 if (i < j) { t = arr[i]; arr[i] = arr[j]; arr[j] = t; } } //最终将基准数归位 arr[left] = arr[i]; arr[i] = temp; quickSort(arr, left, i - 1); quickSort(arr, i + 1, right); return arr; }
未完待续…
相关文章推荐
- Java常见排序算法之直接选择排序
- Java常见排序算法之折半插入排序
- Java常见排序算法之堆排序
- 【LeetCode-面试算法经典-Java实现】【075-Sort Colors (颜色排序)】
- Java常见排序算法之快速排序
- Java实现常见的排序算法之快排(快速排序)
- Java常见排序算法之归并排序
- 常见的排序算法之Java代码解释
- Java常见排序算法之直接插入排序
- 【LeetCode-面试算法经典-Java实现】【075-Sort Colors (颜色排序)】
- java实现选择排序算法,sort
- 常见算法-将二叉搜索树转化为排序的双向链表(java版)
- Java常见排序算法之Shell排序
- Java常见排序算法之冒泡排序
- 算法从排序开始——插入排序(Insertion Sort)C语言及Java实现
- 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
- 学习笔记之快速排序——quicklySort——基础算法——java
- Java实现几种常见排序方法(下)
- 常见算法学习及其Java实现--有序区和无序区的冒泡算法实现
- Java实现几种常见排序方法(下)