「java主流排序」JAVA 排序

博主:adminadmin 2023-01-27 07:12:09 325

今天给各位分享java主流排序的知识,其中也会对JAVA 排序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java几种基本排序

/**

     * 冒泡排序

     * 比较相邻的元素。如果第一个比第二个大,就交换他们两个。  

     * 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。  

     * 针对所有的元素重复以上的步骤,除了最后一个。

     * 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 

     * @param numbers 需要排序的整型数组

     */

    public static void bubbleSort(int[] numbers)

    {

        int temp = 0;

        int size = numbers.length;

        for(int i = 0 ; i  size-1; i ++)

        {

        for(int j = 0 ;j  size-1-i ; j++)

        {

            if(numbers[j]  numbers[j+1])  //交换两数位置

            {

            temp = numbers[j];

            numbers[j] = numbers[j+1];

            numbers[j+1] = temp;

            }

        }

        }

    }

快速排序的基本思想:

         通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。

/**

     * 查找出中轴(默认是最低位low)的在numbers数组排序后所在位置

     * 

     * @param numbers 带查找数组

     * @param low   开始位置

     * @param high  结束位置

     * @return  中轴所在位置

     */

    public static int getMiddle(int[] numbers, int low,int high)

    {

        int temp = numbers[low]; //数组的第一个作为中轴

        while(low  high)

        {

        while(low  high  numbers[high]  temp)

        {

            high--;

        }

        numbers[low] = numbers[high];//比中轴小的记录移到低端

        while(low  high  numbers[low]  temp)

        {

            low++;

        }

        numbers[high] = numbers[low] ; //比中轴大的记录移到高端

        }

        numbers[low] = temp ; //中轴记录到尾

        return low ; // 返回中轴的位置

    }

    

    递归形式的分治排序算法:

    /**

     * 

     * @param numbers 带排序数组

     * @param low  开始位置

     * @param high 结束位置

     */

    public static void quickSort(int[] numbers,int low,int high)

    {

        if(low  high)

        {

        int middle = getMiddle(numbers,low,high); //将numbers数组进行一分为二

        quickSort(numbers, low, middle-1);   //对低字段表进行递归排序

        quickSort(numbers, middle+1, high); //对高字段表进行递归排序

        }

    

    }

Java排序一共有几种?

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

各类排序方法代码如图:

Java的排序算法有哪些

java的排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。

1.插入排序:直接插入排序、二分法插入排序、希尔排序。

2.选择排序:简单选择排序、堆排序。

3.交换排序:冒泡排序、快速排序。

4.归并排序

5.基数排序

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

排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)

快速排序的伪代码。

/

/使用快速排序方法对a[

:n-

1

]排序

从a[

:n-

1

]中选择一个元素作为m

i

d

d

l

e,该元素为支点

把余下的元素分割为两段left

和r

i

g

h

t,使得l

e

f

t中的元素都小于等于支点,而right

中的元素都大于等于支点

递归地使用快速排序方法对left

进行排序

递归地使用快速排序方法对right

进行排序

所得结果为l

e

f

t

+

m

i

d

d

l

e

+

r

i

g

h

t

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;iargs.length-1;i++){

for(int j=i+1;jargs.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;iargs.length-1 ;i++ ){

int min=i;

for (int j=i+1;jargs.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;iargs.length;i++){

for(int j=i;j0;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主流排序和JAVA 排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。