快速排序:升序+降序----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 月之骑士 ...
随机推荐
- 《sql---教学反馈系统-阶段项目2》
/* a) 创建数据库 使用T-SQL创建数据库feedback,要求:①一个主要文件(存放在第一个硬盘分区C:\project文件夹下),初始大小为10M,最大为200M,文件自动增长率为15% ② ...
- [Java聊天室server]实战之五 读写循环(服务端)
前言 学习不论什么一个稍有难度的技术,要对其有充分理性的分析,之后果断做出决定---->也就是人们常说的"多谋善断":本系列尽管涉及的是socket相关的知识,但学习之前,更 ...
- 使用SVN clang: error: linker command failed with exit code 1 (use -v to see invocation)
然后上传到该项目SVN仓库上,例如,下面的错误再次发生再拉到本地编译 ld: library not found for -lxxxxxxxxxxxx clang: error: linker com ...
- 收集经常使用的.net开源项目
Json.NET http://json.codeplex.com/ Json.Net是一个读写Json效率比較高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Lin ...
- SWT的TitleAreaDialog详解
转自:http://www.cnblogs.com/AllenYoung/archive/2006/10/05/521805.html Dialog是SWT和JFace的一个重要的组成部分,我们在开发 ...
- 【PLSQL】package包的使用
************************************************************************ ****原文:blog.csdn.net/clar ...
- onmouseover 执行 ToolTip 控件
Tooltip控件是一个简单,但非常有用的控件.它能够为我们的软件提供非常漂亮的提示信息,提高软件的可用性,给用户比较好的体验.假设现在有两个按钮,一个用来预览吊线世系图,一个用来预览行转.为了保持按 ...
- cocos2d-x 2.2.3 创建项目的方法
直接复制粘贴到txt文本,然后修改后缀为.bat,然后将bat文件放到tools\project-creator的目录下即可. :project_input @echo 请输入项目名称,按回车,例:H ...
- 划分树 静态第k大
划分树是保存了快速排序的过程的树,可以用来求静态第k小的数 如果,划分树可以看做是线段树,它的左孩子保存了mid-L+1 个 小于等于 a[mid] 的数字, 右孩子保存了 R-mid个大于等于a[ ...
- Mac maven环境变量配置
近期一直在学习使用Macbook,在这里记录一下全部遇到的问题 问题起源: 1.Macbook 安装了Eclipse,Eclipse装入插件maven & git , 可是在git中clone ...