Java中的一些基础算法
来源:互联网 发布:淘宝双十一交易情况 编辑:程序博客网 时间:2024/05/22 20:05
/** * 插入排序、冒泡排序、选择排序、快速排序 * @author ZHANGHAOHAO * @date 2017/5/10 */public class Algorithm { /** * 插入排序:把未排序的插入到有序的序列里面 * * @param array * @return */ public static void insertSort(int[] array) { if (array == null || array.length == 0) throw new NullPointerException("no sort"); for (int i = 1; i < array.length; i++) { for (int j = 0; j < i; j++) { if (array[i] < array[j]) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } } } } /** * 冒泡排序:把最大的数冒泡到最后面 * * @param array * @return */ public static int[] bubbleSort(int[] array) { if (array == null || array.length == 0) throw new NullPointerException("no sort"); for (int j = 0; j < array.length - 1; j++) { for (int i = 0; i < array.length - j - 1; i++) { if (array[i] > array[i+1]) { int temp = array[i]; array[i] = array[i+1]; array[i+1] = temp; } } } return array; } /** * 选择排序: 选出最小的和第一位数交换,选出第二小的和第二位数交换 * * @param array * @return */ public static int[] selectSort(int[] array) { if (array == null || array.length == 0) throw new NullPointerException("no sort"); for (int j = 0; j < array.length - 1; j++) { int min = array[j]; int n = j; for (int i = j + 1; i < array.length; i++) { if (array[i] < min) { min = array[i]; n = i; } } if (n != j) { int temp = array[j]; array[j] = array[n]; array[n] = temp; } } return array; } /** * 快速排序,先找到中间值,然后在分块排序 * * @param array * @return */ public static int[] fastSort(int[] array, int start, int end) { if (array == null || array.length == 0) throw new NullPointerException("no sort"); if (end > start) { int middle = getMiddle(array, 0, array.length - 1); getMiddle(array, 0, middle - 1); getMiddle(array, middle + 1, array.length - 1); } return array; } public static int getMiddle(int[] array, int start, int end) { int middle = array[start]; while (end > start) { while (end > start && array[end] >= middle) end--; array[start] = array[end]; while (end > start && array[start] <= middle) start++; array[end] = array[start]; } array[start] = middle; return start; }}
1 0
- Java中的一些基础算法
- JAVA一些基础算法
- 数论中的一些基础算法
- Java中的一些基础概念
- Java中的一些基础知识点
- java基础一些简易算法题
- 常用一些Java基础算法积累
- java编程基础中的一些小细节
- Java基础中的一些知识点(一)
- Java基础中的一些知识点(二)
- java中的一些常见排序算法
- 链表中的一些算法,Java实现
- JAVA集合中的一些排序算法
- 一些基础算法
- [Unity基础]一些算法
- Java SE中的一些基础知识点截图说明
- Java基础回顾 : 文件类中的一些常用的方法
- C中和Java中的基本数据类型及一些C基础
- HTML5本地存储localStorage
- 设计模式之组合模式
- 2017.05.11 开启博客之路
- 学习笔记(引用,动态分配等等)
- 两个sql查询使用union之后排序失效的解决方法
- Java中的一些基础算法
- es6实用方法--set
- Operators in MXNet-BatchNorm
- ajax动态刷新
- PHP基础面试题收集
- Linux下用wget下载Oracle软件
- Android N的铃声问题(2)
- 复习
- Java虚拟机体系结构