快速排序
来源:互联网 发布:linux驱动工程师 编辑:程序博客网 时间:2024/05/14 05:33
快速排序法 快速排序中体现的思想有分治法.
从小到大排序
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
1.i =L; j = R; 将基准数挖出形成第一个坑a[i]。 2.j--由后向前找比它小的数,找到后挖出此数填前一个坑a[i]中。 3.i++由前向后找比它大的数,找到后也挖出此数填到前一个坑a[j]中。 4.再重复执行2,3二步,直到i==j,将基准数填入a[i]中。
public static void fastSort(int[] array,int start,int end){ //初始化参数 int i=start; int j=end; /* i<j 表示值得去排序 */ if(i<j){ //选定开始的元素作为第一个坑 int base=array[i]; while(i<j){ //从右向左的查找 while(i<j&&(array[j]>=base)){ j--; } if(i<j){ //如果存在,则填坑,并且产生新坑j array[i]=array[j]; i++; } //从左向右的查找 while(i<j&&(array[i]<base)){ i++; } if(i<j){ //如果存在,则填坑,并且产生新坑i array[j]=array[i]; j--; } } array[i]=base; //分治法 fastSort(array,start,i-1); fastSort(array,i+1,end); }
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 开源项目:XUtil详解
- android- 改变Dialog 背景透明度
- HTML 图像 表格 图像映射 实际应用-菜谱、课程表
- ColorMatrixColorFilter颜色过滤(离线用户的灰色头像处理)
- linux命令(1)ls命令
- 快速排序
- LeakCanary:检测你APP所有的内存泄露
- 袁文雪-1323110839-仿微博界面布局
- 有意思的数学基础面试题
- mysql初始化修改root用户密码,mysqladmin: Can't turn off logging; error: 'Access denied; you need the SUPER pri
- 通过数据库链导出遇到ORA-39126错误
- 将逗号分割的clob字段转化为varchar,并将字符串拆分为多行
- iframe直接调用第三方网站的天气预报
- 测试你的液晶显示器是8bit还是6bit (附测试图)(更新为GIF动画测试)