导航:首页 > 编程语言 > 排序java

排序java

发布时间:2022-01-14 04:34:58

java中有哪几种常用的排序方法

1、冒泡排序
冒泡排序是一个比较简单的排序方法。在待排序的数列基本有序的情况下排序速度较快。若要排序的数有n个,则需要n-1轮排序,第j轮排序中,从第一个数开始,相邻两数比较,若不符合所要求的顺序,则交换两者的位置;直到第n+1-j个数为止,第一个数与第二个数比较,第二个数与第三个数比较,......,第n-j个与第n+1-j个比较,共比较n-1次。此时第n+1-j个位置上的数已经按要求排好,所以不参加以后的比较和交换操作。例如:第一轮排序:第一个数与第二个数进行比较,若不符合要求的顺序,则交换两者的位置,否则继续进行二个数与第三个数比较......。直到完成第n-1个数与第n个数的比较。此时第n个位置上的数已经按要求排好,它不参与以后的比较和交换操作;第二轮排序:第一个数与第二个数进行比较,......直到完成第n-2个数与第n-1个数的比较;......第n-1轮排序:第一个数与第二个数进行比较,若符合所要求的顺序,则结束冒泡法排序;若不符合要求的顺序,则交换两者的位置,然后结束冒泡法排序。
共n-1轮排序处理,第j轮进行n-j次比较和至多n-j次交换。
从以上排序过程可以看出,较大的数像气泡一样向上冒,而较小的数往下沉,故称冒泡法。

2、选择排序
选择法的原理是先将第一个数与后面的每一个数依次比较,不断将将小的赋给第一个数,从而找出最小的,然后第二个数与后面的每一个数依次比较,从而找出第二小的,然后第三个数与后面的

3、插入排序
插入排序的原理是对数组中的第i个元素,认为它前面的i-1个已经排序好,然后将它插入到前面的i-1个元素中。插入排序对少量元素的排序较为有效.

4、快速排序
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此大道整个数据变成有序序列。

❷ Java排序一共有几种

日常操作中,常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。

各类排序方法代码如图:

❸ java程序排序

java 程序排序可以使用默认的compartor类提供的排序方法,代码如下:

Collections.sort(dataMap,newComparator<Map<String,Object>>(){

@Override
publicintcompare(Map<String,Object>lhs,Map<String,Object>rhs){
switch(whichsort){
caseSystem_OpenPosition_Sort_Currency:

Stringd2=((String)rhs.get(Instrument));
Stringd1=(String)lhs.get(Instrument);
if(d2!=null&&d1!=null){

intflag=d1.compareTo(d2);
if(flag==0){
Doubled3=((Double)rhs.get(OpenPrice));
Doubled4=(Double)lhs.get(OpenPrice);
if(d3!=null&&d4!=null){

intflag2=d4.compareTo(d3);
if(flag2==0){
Stringd5=((String)rhs.get(BuySell));
Stringd6=(String)lhs.get(BuySell);
if(d5!=null&&d6!=null){

returnd6.compareTo(d5);
}
}

returnd4.compareTo(d3);
}
}else{
returnflag;
}
//returnd1.compareTo(d2);
}

❹ java排序

importjava.io.File;
importjava.util.Arrays;
importjava.util.Comparator;

publicclassTest{
publicstaticvoidmain(String...args){
File[]files=getFilesOrder(newFile("c:/"));

for(Filef:files){
System.out.println(f.getName());
}
}

privatestaticFile[]getFilesOrder(Filefile){
File[]files=null;
if(file.exists()){
files=file.listFiles();
Arrays.sort(files,getComparator());
}
returnfiles;
}

privatestaticComparator<?superFile>getComparator(){
returnnewComparator<File>(){
@Override
publicintcompare(Fileo1,Fileo2){
if(o1.isDirectory()&&o2.isFile())
return1;
elseif(o2.isDirectory()&&o1.isFile())
return-1;
else
returno1.getName().compareTo(o2.getName());
}
};
}
}

File 可以是 “文件”,也可以是 “目录”,分开比较。

另外用 Comparator 比较方便。

❺ Java的几种常见排序

快速排序法、冒泡法、选择排序法、插入排序法
1.快速排序:

import java.util.Arrays;
public class Test2{
public static void main(String[] args){
int[] a={5,4,2,4,9,1};
Arrays.sort(a); //进行排序
for(int i: a){
System.out.print(i);
}
}
}
2.冒泡排序
public static int[] bubbleSort(int[] args){//冒泡排序算法
for(int i=0;i<args.length-1;i++){
for(int j=i+1;j<args.length;j++){
if (args[i]>args[j]){
int temp=args[i];
args[i]=args[j];
args[j]=temp;
}
}
}
return args;
}
3.选择排序
public static int[] selectSort(int[] args){//选择排序算法
for (int i=0;i<args.length-1 ;i++ ){
int min=i;
for (int j=i+1;j<args.length ;j++ ){
if (args[min]>args[j]){
min=j;
}
}
if (min!=i){
int temp=args[i];
args[i]=args[min];
args[min]=temp;
}
}
return args;
}
4.插入排序
public static int[] insertSort(int[] args){//插入排序算法
for(int i=1;i<args.length;i++){
for(int j=i;j>0;j--){
if (args[j]<args[j-1]){
int temp=args[j-1];
args[j-1]=args[j];
args[j]=temp;
}else break;
}
}
return args;
}

❻ 在java中如何给数据进行大小排序

privateList<Integer>mList=newArrayList<>();

mList.add(1);
mList.add(5);
mList.add(7);
mList.add(9);
mList.add(8);
mList.add(3);

//排序前
Log.d(TAG,"onCreate:"+mList.toString());

Collections.sort(mList);

//排序后
Log.d(TAG,"onCreate:"+mList.toString());

打印的Log:
[1,5,7,9,8,3]
[1,3,5,7,8,9]

❼ java中姓名排序~

不是特别理解你想问什么,我暂且假设你想问的是如何排序然后输出,若我理解有误你可以再问。关于字符串的排序首先我们应该规定怎样比较他们的大小,那么我假定你想要的是字母靠前的更小,靠后的更大。那么你可以使用String类的compare方法,然后使用STL的排序算法排序就可以了。输出循环输出即可。

❽ java 排序

public class P
{
public static void main(String[] args)
{
String str="abc";
int loop=str.length()+1;

while(loop>0)
{
System.out.println(str);
str=str.charAt(str.length()-1)+str.substring(0,str.length()-1);
loop--;
}
}
}

❾ java升序排序

其实排序JAVA已经给我们做好了, 你只是需要自己去调用|: 声明一个import java.util.Collections;再实现implements Comparator 通过Collections调用new 实现implements Comparator的类就行了 下面是代码: package 别人的程序的分析设计; /** * @author greatwqs * */ import java.util.Collections; import java.util.*; public class myQuiz{ public static void main(String[] args) { Employee e1 = new Employee("Cay",4000); Employee e2 = new Employee("Bush",6000); Manager m1 = new Manager ("Alice",5000); //m1.setBonus(100000); List<Employee> list_1=new ArrayList<Employee>(); list_1.add(e1); list_1.add(e2); list_1.add(m1); System.out.println("以下按薪水排序后输出[从高到低]"); Collections.sort(list_1,new Qing()); for(Employee e:list_1) System.out.println(e); List<Employee> list_2 = new ArrayList<Employee>(); list_2.add(e1); list_2.add(e2); list_2.add(m1); System.out.println("以下按照姓名字典顺序输出:"); Collections.sort(list_2 , new Song()); for(Employee em :list_2){ System.out.println(em); } } } class Qing implements Comparator{ public int compare(Object obj0, Object obj1){ Employee c0 = (Employee)obj0; Employee c1 = (Employee)obj1; if(c0.getSalary() >= c1.getSalary()) return -1; else return 1; } } 下面还有代码..

❿ Java实现几种常见排序方法

最主要的是冒泡排序、选择排序、插入排序以及快速排序

1、冒泡排序

冒泡排序是一个比较简单的排序方法。在待排序的数列基本有序的情况下排序速度较快。若要排序的数有n个,则需要n-1轮排序,第j轮排序中,从第一个数开始,相邻两数比较,若不符合所要求的顺序,则交换两者的位置;直到第n+1-j个数为止,第一个数与第二个数比较,第二个数与第三个数比较,......,第n-j个与第n+1-j个比较,共比较n-1次。此时第n+1-j个位置上的数已经按要求排好,所以不参加以后的比较和交换操作。例如:第一轮排序:第一个数与第二个数进行比较,若不符合要求的顺序,则交换两者的位置,否则继续进行二个数与第三个数比较......。直到完成第n-1个数与第n个数的比较。此时第n个位置上的数已经按要求排好,它不参与以后的比较和交换操作;第二轮排序:第一个数与第二个数进行比较,......直到完成第n-2个数与第n-1个数的比较;......第n-1轮排序:第一个数与第二个数进行比较,若符合所要求的顺序,则结束冒泡法排序;若不符合要求的顺序,则交换两者的位置,然后结束冒泡法排序。
共n-1轮排序处理,第j轮进行n-j次比较和至多n-j次交换。
从以上排序过程可以看出,较大的数像气泡一样向上冒,而较小的数往下沉,故称冒泡法。

public void bubbleSort(int a[])
{
int n = a.length;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(a[j] > a[j+1])
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}

2、选择排序

选择法的原理是先将第一个数与后面的每一个数依次比较,不断将将小的赋给第一个数,从而找出最小的,然后第二个数与后面的每一个数依次比较,从而找出第二小的,然后第三个数与后面的每一个数依次比较,从而找出第三小的.....直到找到最后一个数。
public void sort(int x[])
{
int n=x.length;
int k,t;
for(int i=0;i<n-1;i++)
{
k=i;
for(int j=i+1;j=n;j++)
{
if(x[j]>x[k])k=j;
if(k!=i)
{
t=x[i];
x[i]=x[k];
x[k]=t;
}
}
}
}

3、插入排序

插入排序的原理是对数组中的第i个元素,认为它前面的i-1个已经排序好,然后将它插入到前面的i-1个元素中。插入排序对少量元素的排序较为有效.

public void sort(int obj[])
{
for(int j=1;j<obj.length;j++)
{
int key=obj[j];
int i=j-1;
while(i>=0&&obj[i]>key)
{
obj[i+1]=obj[i];
i--;
}
obj[i+1]=key;
}
}

4、快速排序

快速排序是对冒泡排序的一种改进。它的基本思想是:通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此大道整个数据变成有序序列。

public void quickSort(int obj[],int low,int high)
{
int i=low;
int j=high;
int keyValue=obj[i];
while(i<j)
{
int temp=0;
while(i<j&&obj[j]>=keyValue)
{
j=j-1;
}
temp=obj[j];
obj[j]=obj[i];
obj[i]=temp;
while(i<j&&obj[i]<=keyValue)
{
i=i+1;
}
temp=obj[j];
obj[j]=ojb[i];
obj[i]=temp;
}
obj[i]=keyValue;
if(low<i-1)
{
quickSort(obj,low,i-1);
}
if(high>i+1)
{
quickSort(obj,i+1,high);
}
}

阅读全文

与排序java相关的资料

热点内容
压缩因子定义 浏览:966
cd命令进不了c盘怎么办 浏览:212
药业公司招程序员吗 浏览:972
毛选pdf 浏览:657
linuxexecl函数 浏览:725
程序员异地恋结果 浏览:372
剖切的命令 浏览:226
干什么可以赚钱开我的世界服务器 浏览:288
php备案号 浏览:989
php视频水印 浏览:167
怎么追程序员的女生 浏览:487
空调外压缩机电容 浏览:79
怎么将安卓变成win 浏览:459
手机文件管理在哪儿新建文件夹 浏览:724
加密ts视频怎么合并 浏览:775
php如何写app接口 浏览:804
宇宙的琴弦pdf 浏览:396
js项目提成计算器程序员 浏览:944
pdf光子 浏览:834
自拍软件文件夹名称大全 浏览:328