java算法
来源:互联网 发布:腾讯股票数据接口api 编辑:程序博客网 时间:2024/06/05 21:14
这里首先给大家介绍的是插入排序和快速排序,再之后是冒泡。
插入排序:在大多数情况下,插入排序算法是相对于冒泡,选择,对象这些中最好的一种。虽然插入排序算法仍然需要O(N二次方)的时间,但是在一般情况下,它要比冒泡排序快一倍,比选择排序还要快一点。尽管它比冒泡排序算法和选择排序算法都更麻烦一些,但它也并不很复杂。而且它的空间复杂度和冒泡选择一样只为O(1)常数阶。
/** *插入排序(WHILE循环实现) *@paramsrc待排序数组 */public void insertionSort(long arr[]){ int in,out; for(out = 1; out <arr.length; out++){ long temp = arr[out]; in = out; while(in > 0 && arr[in-1] >= temp){ arr[in] = arr[in -1]; --in; } arr[in] = temp; } for (long l : arr) {System.out.println(l);}}
public class QuickSort {public static void main(String[] args) {int[] array = { 49, 38, 65, 97, 76, 13, 27 };quickSort(array, 0, array.length - 1);for (int i = 0; i < array.length; i++) {System.out.println(array[i]);}}/* * 先按照数组为数据原型写出算法,再写出扩展性算法。数组{49,38,65,97,76,13,27} */public static void quickSort(int[] n, int left, int right) {int pivot;if (left < right) {// pivot作为枢轴,较之小的元素在左,较之大的元素在右pivot = partition(n, left, right);// 对左右数组递归调用快速排序,直到顺序完全正确quickSort(n, left, pivot - 1);quickSort(n, pivot + 1, right);}}public static int partition(int[] n, int left, int right) {int pivotkey = n[left];// 枢轴选定后永远不变,最终在中间,前小后大while (left < right) {while (left < right && n[right] >= pivotkey)--right;// 将比枢轴小的元素移到低端,此时right位相当于空,等待低位比pivotkey大的数补上n[left] = n[right];while (left < right && n[left] <= pivotkey)++left;// 将比枢轴大的元素移到高端,此时left位相当于空,等待高位比pivotkey小的数补上n[right] = n[left];}// 当left == right,完成一趟快速排序,此时left位相当于空,等待pivotkey补上n[left] = pivotkey;return left;}}
0 0
- java算法:算法基础
- java算法:算法分析
- java算法:递归算法
- java 算法--洗牌算法
- Java算法--LRU算法
- Java 算法
- Java算法
- java算法
- 算法(Java)
- 算法(Java)
- Java 算法
- 算法-java
- JAVA算法
- java算法
- java算法
- java算法
- Java算法
- JAVA 算法
- 分享微博js代码
- 数组指针 和指针数组
- 自我反省记录
- POJ 1961 Period(KMP)
- [Linux内存]vmalloc学习笔记
- java算法
- 黑马程序员-- 面向对象VII--
- POJ 2109 Power of Cryptography
- 【HDU2544】记第一次写Floyd
- Java中枚举类的使用总结
- RTSP服务器实例live555源代码分析
- 一个伪球迷的世界杯记忆
- flash - AVM2 指令参考
- 以太网RJ45 针脚定义