排序算法的Java实现+思路(一):冒泡、快排
来源:互联网 发布:育知同创韩茹java 编辑:程序博客网 时间:2024/05/17 23:35
冒泡排序:
/** * 冒泡排序 * 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 */public static void bubbleSort(int[] numbers){ int length = numbers.length; int exchange = 0; for (int i = 0;i< length;i++){ for (int j = i+1;j<length;j++){ if (numbers[i]>numbers[j]){ exchange = numbers[j]; numbers[j] = numbers[i]; numbers[i] = exchange; } } }}
快速排序:
/** 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两*部分继续进行排序,直到整个序列有序。*/public static void quickSort(int[] numbers,int low,int high){ int start = low; int end = high; //取第一个值作为中轴,那么就要从最后开始比较,因为这样第一个位置可以作为覆盖位,每一次交换后都要存在一个待覆盖的位置,供下次覆盖,如果是取最后一个值作为中轴,就要从头开始比较 int temp = numbers[low]; //指向同一个退出 while (low<high){ //从后边开始比较,比中轴大就留在原位,high减一, while (low<high&&numbers[high]>temp){ high--; } //找到比中轴小的了,就覆盖low位置,high位变成下一个待覆盖位 numbers[low] = numbers[high]; while (low<high&&numbers[low]<temp){ low++; } numbers[high] = numbers[low]; } //将中轴放到最后一个low==high这个最后一个待覆盖位 numbers[low] = temp; //递归调用,调整前后两边的 if (low-start>1){ quickSort(numbers,start,low-1); } if (end-high>1){ quickSort(numbers,high+1,end); }}
阅读全文
0 0
- 排序算法的Java实现+思路(一):冒泡、快排
- 排序及选择算法的java实现(一)选择、冒泡、插入、希尔、归并、快排
- Java实现的各种排序算法(包括冒泡,快排等)
- 排序(快排,冒泡,堆排序,插入排序,归并排序,选择排序)算法Java实现
- 三大排序算法实现(冒泡,选择,快排)
- Java实现的排序算法及比较 [冒泡,选择,插入,归并,希尔,快排]
- 【笔试】Java实现常用的排序算法:直插、冒泡和快排
- 五种经典排序算法的实现(冒泡、归并、快排、堆排序、希尔)
- 五种经典排序算法的实现(冒泡、归并、快排、堆排序、希尔)
- 常用排序算法简介与java实现(冒泡、插入、选择、希尔、归并、快排)
- 算法—排序(快排,冒泡)
- 常用排序算法的js实现(冒泡、选择、插入、归并、希尔、快排)
- java实现常见的排序(冒泡、插入、选择、快排)
- Java之常见的几种排序算法-插入、选择、冒泡、快排、堆排等 .
- Java 常见的几种排序算法-插入、选择、冒泡、快排、堆排等
- Java之常见的几种排序算法-插入、选择、冒泡、快排、堆排等
- Java常见的几种排序算法-插入、选择、冒泡、快排、堆排等
- Java常见的几种排序算法-插入、选择、冒泡、快排、堆排等
- 图片标注工具LabelImg使用教程
- register_chrdev & unregister_chrdev
- HTML
- RpgMakerMV源码解析(1)-输入管理
- 谷歌搜索技巧
- 排序算法的Java实现+思路(一):冒泡、快排
- (HDU
- pip安装python包时报字符编码错
- 关于scipy包的安装
- 第十二篇博客
- Trafodion 使用gdb分析core文件
- 判断触摸点 cocos2d-js
- python学习之 字符串前'r'的用法
- Mysql读取JSON数据出现乱码,解决方案