【JAVA基础】②关于冒泡排序和快速排序
来源:互联网 发布:c语言中long是干嘛的 编辑:程序博客网 时间:2024/06/07 02:53
老师一直在强调这两个排序方法是面试的时候经常会被各大HR要求手写,想了想还是整理在这儿吧
主要是思想,写在这儿的都是一些我的个人见解(以从小到大排序为例)
1、冒泡排序,就是将相邻的两个数字比较,较小的往前放
public void sort(int a[]){ for(int i=0;i<a.length;i++){ for(int j=i+1;j<a.length;j++){ if(a[i]>=a[j]){ int temp=a[i]; a[i]=a[j]; a[j]=temp; } } }}其实,交换位置还有一种“文艺”的写法:
a[i]=a[i]^a[j];a[j]=a[j]^a[i];a[i]=a[i]^a[j];但是实际上,按位相与操作,耗费的时间会比第一种定义一个新变量要多。
2、快速排序,快速排序的思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归(简单来说就是方法自己调用自身)进行,以此达到整个数据变成有序序列。
实现思路大体就是:
public void quickSort(int a[],int l,int r){ if(l<r){ int i=l,j=r,x=a[i]; while(i<j){ while(i<j&&a[j]>x){ j--; } a[i]=a[j]; while(i<j&&a[i]<x){ i++; } a[j]=a[i]; } a[i]=x; quickSort(a,l,i-1); quickSort(a,i+1,r); }}本来想画图的,不过这个机房电脑木有PS,画图着实困难,算了,看代码应该没有什么难度,这个代码已经是我精简之后的了。
0 0
- 【JAVA基础】②关于冒泡排序和快速排序
- java基础冒泡,选择和快速排序
- 关于java中快速排序和冒泡排序的小结
- JAVA基础:快速排序 、冒泡排序
- java的冒泡排序和快速排序
- 冒泡排序和快速排序java实现
- Java的冒泡排序和快速排序.
- java实现冒泡排序和快速排序
- java实现冒泡排序和快速排序
- Java基础---选择排序和冒泡排序
- java基础------》数据结构---》交换排序(冒泡排序,快速排序),选择排序,系统排序,插入排序
- Java实现交换排序 之 冒泡排序和快速排序
- 排序--冒泡排序和快速排序(java)
- java 快速排序,冒泡排序
- java 冒泡排序、快速排序
- 快速排序和冒泡排序
- 冒泡排序和快速排序
- 冒泡排序和快速排序
- Dom编程(表格的行与行之间以颜色间隔、鼠标经过行以高亮显示)
- MFC与flash交互
- 如何解决 yum安装出现This system is not registered with RHN
- 基于业务规则的客户风险评分 - ODM/JRules实现
- 【并发编程】程序的启动和终结
- 【JAVA基础】②关于冒泡排序和快速排序
- java中的"回调"
- 设计模式-简单工厂(Demo)
- jquery访问ashx文件示例
- PHP读取目录下所有文件,并通过ajax返回json格式的数据
- 第四十一天 一乐在其中—Android的小游戏打飞机(五)添加背景
- 新浪微博显示的地理位置可以修改吗
- Mysql无法创建外键的原因
- CF Problem 449A Jzzhu and Chocolate