Java算法——冒泡排序&&快速排序
来源:互联网 发布:路由器防蹭网屏蔽软件 编辑:程序博客网 时间:2024/06/05 17:53
冒泡排序
从左到右比较,一次比较左右相邻2个元素,如果左边的大,则左右交换位置,循环比较所有元素,排出顺序。
int [] mlist={3,2,4,6,9,7,1,8,0}; public static void list(int[] list) { int temp=0; int size=list.length; for(int i = 0 ; i < size-1 ; i++){ for(int j = i+1 ; j < size ; j++){ if(list[i] > list[j]) { temp = list[i]; list[i] = list[j]; list[j] = temp; } } } }
优点:稳定;
缺点:慢,每次只能移动相邻两个数据。
快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。是目前已知的最快的排序方法。
基本思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。
public void quick(int[] a) { int s=a.length; if (s > 0) { //查看数组是否为空 mSort(a, 0, s - 1); } } public void mSort(int[] list, int low, int high) { if (low < high) { int middle = getMiddle(list, low, high); //将list数组进行一分为二 mSort(list, low, middle - 1); //对低于基数的左边部分进行递归排序 mSort(list, middle + 1, high); //对高于于基数的右边部分进行递归排序 } } public int getMiddle(int[] list, int low, int high) { int tmp = list[low]; //数组的第一个作为基数 while (low < high) { // 从右向左找第一个小于 基数 的数 while (low < high && list[high] >= tmp) { high--; } list[low] = list[high]; //比基数小的记录移到低端 // 从左向右找第一个大于等于 基数 的数 while (low < high && list[low] <= tmp) { low++; } list[high] = list[low]; //比基数大的记录移到高端 } list[low] = tmp; //基数记录到尾 return low; //返回基数的位置 }
优点:极快,数据移动少;
缺点:不稳定,当有相同元素是,相同元素间的相对位置可能会变化。
0 0
- Java算法——冒泡排序&&快速排序
- Java排序算法——冒泡排序
- Java排序算法——冒泡排序
- 排序方式—/冒泡排序/快速排序
- 冒泡、快速排序算法
- 【算法】 冒泡排序 & 快速排序
- 排序算法——桶排序、冒泡排序、快速排序、选择排序
- Java算法排序之--冒泡排序、快速排序
- Java排序算法总结之(二)——基于交换排序(冒泡排序、快速排序)
- 排序算法—冒泡排序
- java里的4种排序算法测试——冒泡、选择、插入、快速排序
- java实现冒泡、选择、快速排序算法
- java实现冒泡、选择、快速排序算法
- 快速排序算法和冒泡排序算法的java实现
- java:快速排序算法与冒泡排序算法
- Java排序算法——快速排序
- 排序算法--交换排序(冒泡排序、快速排序、随机快速排序)java实现
- java 快速排序,冒泡排序
- jupyter (ptyhon|R)
- Android自动化测试(UiAutomator)简要介绍
- java之装饰者设计模式
- 如何进行英语阅读才不吃力
- java.lang.UnsatisfiedLinkError: Couldn't load hyphenate_av from loader dalvik.syste
- Java算法——冒泡排序&&快速排序
- swift懒加载
- 删除注释/*......*/部分
- java之代理设计模式
- 给大家推荐一个LRU实现算法的java 代码
- 2016.8.6
- vs2013和cuda7.5配置使用
- nsis笔记
- codeforces 185A Plant(矩阵快速幂)