复习 冒泡,快速 排序
来源:互联网 发布:域名地址解析 编辑:程序博客网 时间:2024/05/30 07:14
冒泡排序
冒泡排序是面试最基础的内容一定要会
冒泡排序的思想
对于一组数组 针对从大到小 每次循环一个一个比较找到一个最大的数放置末尾,后一次循环的数个数将会比前一次少1,因为已经确定了一个数的位置,以此下去将会排完所有数据。
来张图看把清楚点
冒泡排序通常使用两个for循环
第一个for循环则是确定循环轮数
第二个for循环则是确定一个最大数
具体实现
//数组名字 afor(int i = 0 ; i<a.length ; i++){ for(int j = 0 ;j<a.length-1-i ; j++){ if(a[j]>a[j+1]){ int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } }}
这便是冒泡排序了。
快速排序
接下来是快速排序,就有点进阶了。
快速排序的思想
快速排序是对于冒泡排序的一种改进,它的原理是:
对于给定的一组记录,选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分,直到序列中的所有记录均有序为止。
再引用一张图片解释下
代码实现
public class quickSort{ public static void sort(int[] a, int low, int height){ int i,j,index; if(low > height) return; i = low; j = height; index = a[i]; //使用第一个数作为基准数 while( i < low ){ while (i < j && a[j] >= index) j--; if (i < j) a[i++] = a[j];// 用比基准小的记录替换低位记录 while (i < j && a[i] < index) i++; if (i < j) // 用比基准大的记录替换高位记录 a[j--] = a[i]; } a[i] = index;// 将基准数值替换回 a[i] sort(a, low, i - 1); // 对低子表进行递归排序 sort(a, i + 1, hight); // 对高子表进行递归排序 } public static void quickSort(int a[]) { sort(a, 0, a.length - 1); } public static void main(String[] args) { int a[] = { 49, 38, 65, 97, 76, 13, 27, 49 }; quickSort(a); System.out.println(Arrays.toString(a)); }}
以上便是快速排序的内容了,希望大家都能掌握
1 0
- 复习 冒泡,快速 排序
- 复习排序-冒泡排序
- 复习之冒泡排序
- 复习--冒泡排序法
- 算法复习--冒泡排序
- 复习一下冒泡排序
- 算法复习--冒泡排序
- 复习:冒泡排序法
- 冒泡排序复习
- 今天复习冒泡排序
- 快速排序 冒泡排序
- 快速排序、冒泡排序
- 冒泡排序 快速排序
- 快速排序、冒泡排序
- 冒泡排序、快速排序
- 冒泡排序、快速排序
- 冒泡排序,快速排序
- 冒泡排序,快速排序
- MD5加密
- jQuery AJAX中的$.ajax()方法请求成功却始终进入error问题的解决方案及原因记录
- c语言文件加密
- Can't connect to MySQL server on 'localhost' (10061)
- LK OpticalFlow+OpenCV3
- 复习 冒泡,快速 排序
- 使用Stanford NER训练自己的model
- Spring面试题和答案
- 关于 quick-cocos 状态机
- Ubuntu命令行下运行matlab
- 软件开发标准(文档模板)
- Arcgis Javascript那些事儿(五)--arcgis server发布自定义比例尺地图
- Android开发——AutoCompleteTextView自动提示控件
- 归并排序寻找和最大的子数组