排序算法(三)------冒泡排序和快速排序
来源:互联网 发布:php fread函数的用法 编辑:程序博客网 时间:2024/04/27 22:28
冒泡排序
算法思路
在一组待排数据,从上到下比较和调整两个相邻的数据,大的往下沉小的往上冒。(a[i]和a[i+1]比较,如果a[i]>a[i+1],交换数据,继续比较a[i+1]和a[i+2])
算法图解
1.原始数据
2.比较3和4,不交换
3.比较4和1,交换
4.比较4和2,交换
5.从头再遍历一遍,最后一位已经最大不再遍历
代码详解
public static int[] sort(int[] arr) { int length = arr.length; for (int i = 0; i < length - 1; i++) { for (int j = 0; j < length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return arr;}
快速排序
算法思路
在数据中取一个基准值(一般取第一个),将剩余数据与之比较且分为两部分,一部分大于等于基准值,另一部分小于基准值,再按照这个方法将这两部分进行递归排序。
算法图解
代码详解
private static int getMiddle(int[] arr, int low, int high) { int temp = arr[low]; while (low < high) { while (low < high && arr[high] >= temp) { high--; } arr[low] = arr[high]; while (low < high && arr[low] <= temp) { low++; } arr[high] = arr[low]; } arr[low] = temp; return low;}private static int[] quickSort(int[] arr, int low, int high) { if (low < high) { int middle = getMiddle(arr, low, high); quickSort(arr, low, middle - 1); quickSort(arr, middle + 1, high); } return arr;}
0 0
- 排序算法(三)------冒泡排序和快速排序
- 排序算法快速排序和冒泡排序
- (三)算法--排序算法选择排序和冒泡排序
- 算法-排序-交换排序(冒泡和快速排序)
- 冒泡排序算法和快速排序算法
- 排序算法(三)交换类排序:冒泡排序和快速排序
- 快速排序算法和冒泡排序
- 冒泡排序和快速排序算法练习
- 漫谈经典排序算法:三、冒泡排序 && 快速排序
- 漫谈经典排序算法:三、冒泡排序 && 快速排序
- 漫谈经典排序算法:三、冒泡排序 && 快速排序
- 漫谈经典排序算法:三、冒泡排序 && 快速排序
- 【排序三】交换排序(冒泡排序&&快速排序)
- 常见的排序算法(三) 交换排序(冒泡排序,快速排序)
- 数据结构和算法分析之排序算法--交换排序篇(冒泡排序和快速排序)
- 排序算法----交换排序(冒泡排序,快速排序)
- 算法排序-交换排序(冒泡排序,快速排序)
- 【算法】 冒泡排序 & 快速排序
- MyEclipse优化设置(最详细版本)
- LeetCode:First Bad Version
- C# 零散笔记
- 好好生活
- RTC实时时钟驱动
- 排序算法(三)------冒泡排序和快速排序
- PHP会话处理相关函数介绍
- 《用户体验要素》读书笔记
- C++运算符重载详解
- fs4412开发板学习笔记(六)
- convert-sorted-list-to-binary-search-tree
- OpenJudge 百练 2787 算24
- 欢迎使用CSDN-markdown编辑器
- cocos2dx3.8指导教程