快速排序:升序+降序----java实现
快速排序思路:先把第一个元素令为low下标,最后一个为high下标。并把第一个元素令为temp来作为标准元素。以标准元素来调整数组,使比标准元素小的都在标准元素前,比标准元素大的都在标准元素后。这样一次排序后,有两个好处:1.标准元素找到了它自己在该元素中的位置;2.把数组分成了以标准元素为分隔的两个子数组。然后分别对两个子数组采用相同的排序方法。那么明显就递归咯~~~
一:升序快排
package com.sheepmu.text; import java.util.Arrays; /*
* @author sheepmu
*/
public class Sort {
public static void main(String[] args){
int[] arr={60,55,48,37,10,90,84,36};
int len=arr.length; quickSort(arr,0,len-1);
System.out.println("升序快排后----->"+Arrays.toString(arr));
}
public static void quickSort(int[] arr,int low,int high){ int i,j,temp;
i=low;//低端下标
j=high;//高端下标
temp=arr[i];//取第一个元素为标准元素。 while(i<j){//递归出口是 low>=high while(i<j&&temp<=arr[j]) //在数组的后端扫描
j--;//移动后j再减了一个,即在temp前一个咯
if(i<j){
arr[i]=arr[j];
i++;
} while(i<j&&arr[i]<temp) //在数组的左端扫描
i++;
if(i<j){
arr[j]=arr[i];
j--;
} }//while完,即第一盘排序
arr[i]=temp;//把temp值放到它该在的位置。
// System.out.println("第 次排序----->"+Arrays.toString(arr));
if(low<i)
quickSort(arr,low,i-1);//对左端子数组递归
if(i<high)
quickSort(arr,j+1,high);//对右端子数组递归 }
}
二:降序快排
import java.util.Arrays;
/*
* @author sheepmu
*/
public class Sort {
public static void main(String[] args){
int[] arr={60,55,48,37,10,90,84,36};
int len=arr.length;
quickSort(arr,0,len-1);
System.out.println("降序快排后----->"+Arrays.toString(arr));
}
public static void quickSort(int[] arr,int high,int low){
int i,j,temp;
i=high;//高端下标
j=low;//低端下标
temp=arr[i];//取第一个元素为标准元素。 while(i<j){//递归出口是 low>=high
while(i<j&&temp>arr[j])//后端比temp小,符合降序,不管它,low下标前移
j--;//while完后指比temp大的那个
if(i<j){
arr[i]=arr[j];
i++;
}
while(i<j&&temp<arr[i])
i++;
if(i<j){
arr[j]=arr[i];
j--;
}
}//while完,即第一盘排序
arr[i]=temp;//把temp值放到它该在的位置。 if(high<i) //注意,下标值
quickSort(arr,high,i-1);//对左端子数组递归
if(i<low) //注意,下标值
quickSort(arr,i+1,low);//对右端子数组递归 ;对比上面例子,其实此时i和j是同一下标!!!!!!!!!!!!! }
}
快速排序:升序+降序----java实现的更多相关文章
- 【java】实体类中 按照特定的字段 进行升序/降序 排序
背景: 实际页面上 所有的分值都是按照JSON格式存储在一个字符串中 存储在同一个字段中: {"ownPTotal":"10>0","ownO ...
- TreeMap升序|降序排列和按照value进行排序
TreeMap 升序|降序排列 import java.util.Comparator; import java.util.TreeMap; public class Main { public st ...
- js学习篇--数组按升序降序排列
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- C# List.sort排序详解(多权重,升序降序)
很多人可能喜欢Linq的orderBy排序,可惜U3D里面linq在Ios上会报错,所以就必须使用list的排序. 其实理解了并不难 升序降序比较 sort有三种结果 1,-1,0分别是大,小,相等. ...
- C# List.sort排序(多权重,升序降序)
很多人可能喜欢Linq的orderBy排序,可惜U3D里面linq在Ios上会报错,所以就必须使用list的排序. 其实理解了并不难 升序降序比较 sort有三种结果 1,-1,0分别是大,小,相等. ...
- mysql_DML_select_升序降序去重
select *from wsb limit 5;显示前5行 select *from students LIMIT (m,n) (其中m是指记录开始的index,从0开始,表示第一条记录n是指 ...
- C++员工管理系统(封装+多态+继承+分类化+函数调用+读写文件+指针+升序降序算法等一系列知识结合)
1 C++职工管理系统 2 该项目实现 八个 功能 3 1-增加功能 2-显示功能 3-删除功能 4-修改功能 4 5-查找功能 6-排序功能 7-清空功能 8-退出功能 5 实现多个功能使用了多个C ...
- Java Collection.sort 排序升序, 降序问题
不多说,记住2点, 直接上代码(下面是降序): package mall; import java.util.ArrayList; import java.util.Collections; impo ...
- HTML中实现Table表头点击升序/降序排序
题目:如下图,请实现表格信息的排序功能,当点击表头的属性区域,将表格信息进行排序切换功能,即第一次点击为降序排序,再一次点击进行升序排序. 姓名 力量 敏捷 智力 德鲁伊王 17 24 13 月之骑士 ...
随机推荐
- 提领NULL指针
通常之中导致程序崩溃的最重要的原因是试图取消引用NULL指针.正如在以前的文章中指出,智能指针RefCountPtr和ScopedPtr它提供了一个诊断的执行时间. 但,并不是所有的指针是所有的对象都 ...
- poj-2195-Going Home最小费用最大流
重新切一遍最小费用最大流~~~ 这到题目的数据范围有问题,尽量开大就好了~~ #include<stdio.h> #include<iostream> #include< ...
- android 防止多次点击,它会导致事件侦听响应于其他接口
这里有情况: A当点击跳转至B介面,点击B接口结束后,到A界面中 1.此时在B界面中,设置点击事件,点击后结束B v.setOnClickListener(new OnClickListener() ...
- Application.mk中APP_ABI 的含义
我们在编写JNI代码时有一个可选的文件Application.mk ,这个文件你可以不创建,但是有时候是有必要写一个这样的文件的. Application.mk文件用于描述应用程序本身的一些属性信息, ...
- Inno Setup打包添加和去除管理员权限
原文:Inno Setup打包添加和去除管理员权限 添加管理员权限 1.在[Setup]节点添加 PrivilegesRequired=admin 2.进入安装目录,找到文件SetupLdr.e32, ...
- 基于 Apache Mahout 构建社会化推荐引擎
基于 Apache Mahout 构建社会化推荐引擎 http://www.ibm.com/developerworks/cn/views/java/libraryview.jsp 推荐引擎利用特殊的 ...
- IL来理解属性
IL来理解属性 阅读目录 概述: C#中如何定义一个属性 Student类 属性Name Main方法 实现get,set方法 性能 访问权限 回到最开始提出的问题 参考资料 .Net底层剖析目录 ...
- SWT中一些细节的说明
1.shell.pack();函数的效果是将程序打包,使其以合适的大小显示出来,不会太大有很多多余空间,也不会太小导致有些控件无法显示. 2. while(!shell.isDisposed()){ ...
- 该View转换成Bitmap方法
方法一: /** * 该View绘制到Bitmap上 * @param view 须要绘制的View * @param width 该View的宽度 * @param height 该View的高度 ...
- hdu 1251 字典树模板题 ---多串 查找单词出现次数
这道题题目里没有给定数据范围 我开了2005 疯狂的WA 然后开了50000, A掉 我以为自己模板理解错 然后一天没吃饭,饿得胃疼还是想着把这题A掉再去吃,谁知竟然是这样的问题,,,呵呵~~~ ...