「java排列算法」java中的排序算法

博主:adminadmin 2022-11-29 23:50:08 47

本篇文章给大家谈谈java排列算法,以及java中的排序算法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java冒泡排序法代码

冒泡排序是比较经典的排序算法。代码如下:

for(int i=1;iarr.length;i++){

for(int j=1;jarr.length-i;j++){

//交换位置

}    

拓展资料:

原理:比较两个相邻的元素,将值大的元素交换至右端。

思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。

第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较;

第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;

依次类推,每一趟比较次数-1;

……

举例说明:要排序数组:int[] arr={6,3,8,2,9,1}; 

for(int i=1;iarr.length;i++){

for(int j=1;jarr.length-i;j++){

//交换位置

}    

参考资料:冒泡排序原理

Java排序一共有几种?

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

各类排序方法代码如图:

JAVA 100个数字用算法排序

class SortTest { // 冒泡排序

    public void sort(int[] args) {

 

        for (int m : args) {

            System.out.print("排序前 " + args[m] + " ");

        }

 

        int time1 = 0, time2 = 0;

        for (int i = 0; i  args.length - 1; i++) {

            ++time1;

            for (int j = i + 1; j  args.length; j++) {

                ++time2;

                int temp;

                if (args[i]  args[j]) {

                    temp = args[j];

                    args[j] = args[i];

                    args[i] = temp;

                }

            }

        }

        System.out.println();

        System.out.println("外循环次数:" + time1 + "内循环次数:" + time2);

        for (int n : args) {

            System.out.print("排序后 " + n + " ");

        }

    }

 

    public static void main(String[] args) {

        int[] arg = new int[] { 2, 1, 4, 5, 8, 7, 6, 3, 9, 0 };

        new SortTest().sort(arg);

    }

}

// 降序排列 循环次数最少

// 输出结果为:

// 排序前 4 排序前 1 排序前 8 排序前 7 排序前 9 排序前 3 排序前 6 排序前 5 排序前 0 排序前 2

// 外循环次数:9 内循环次数:45

// 排序后 0 排序后 1 排序后 2 排序后 3 排序后 4 排序后 5 排序后 6 排序后 7 排序后 8 排序后 9

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

import java.util.Random;

/**

 * class name: RapidSort

 * description: Java快速排序法:数组和集合

 * @author Jr

 *

 */

public class RapidSort {

    public static void QuickSort(int e[], int first, int end) {

        int i = first, j = end, temp = e[first];

        while (i  j) {

            while (i  j  e[j] = temp)

                j--;

            e[i] = e[j];

            while (i  j  e[i] = temp)

                i++;

            e[j] = e[i];

        }

        e[i] = temp;

        if (first  i - 1)

            QuickSort(e, first, i - 1);

        if (end  i + 1)

            QuickSort(e, i + 1, end);

    }

    public static void main(String[] args) {

        int arr[] = { 49, 38, 65, 97, 76, 13, 27, 49 };

        int len = 8;

        int i;

        System.out.printf("before sort\n");

        for (i = 0; i  len; i++)

            System.out.printf("%d  ", arr[i]);

        System.out.printf("\n");

        QuickSort(arr, 0, len - 1);

        System.out.printf("after sorted\n");

        for (i = 0; i  len; i++)

            System.out.printf("%d  ", arr[i]);

    }

}

结果:

before sort

49  38  65  97  76  13  27  49  

after sorted

13  27  38  49  49  65  76  97

JAVA排列组合算法如题:用x、y,求出指定长度的所有排列组合。

按照你的要求编写的求x,y指定长度的所有排列组合的Java程序如下

import java.util.ArrayList;

import java.util.List;

public class EE {

 public static void combination(ListString list, String sNumbers, String sPath, int ALen)

 {

     if (sPath.length()== ALen)

     {

      list.add(sPath);

         return;

     }

     for(int i=0;isNumbers.length();i++)

     {

      

      combination(list,sNumbers,sPath +sNumbers.substring(i,i+1), ALen);

     }

 }

 public static void main(String[] args) {

  ListString output = new ArrayListString();

     System.out.println("组合");

     combination(output,"xy", "", 5);

     for(String s: output)

      System.out.print(s+" ");

     System.out.println();

     System.out.println("共"+output.size()+"个");

 }

}

运行结果

组合

xxxxx xxxxy xxxyx xxxyy xxyxx xxyxy xxyyx xxyyy xyxxx xyxxy xyxyx xyxyy xyyxx xyyxy xyyyx xyyyy yxxxx yxxxy yxxyx yxxyy yxyxx yxyxy yxyyx yxyyy yyxxx yyxxy yyxyx yyxyy yyyxx yyyxy yyyyx yyyyy

共32个

java全排列递归算法

思路:先有一个起始排列,如1234.从后面扫描,直到找到a[k],a[k]a[k+1];再从后面扫描,直到找到a[j],这里有 a[k]a[j]。交换a[k],a[j].再把a[k+1],...a[n-1]排序(从小到大),即得到了一个排列,再循环下去,直到找出所有的排序。用C语言的,参考下:

关于java排列算法和java中的排序算法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-29,除非注明,否则均为首码项目网原创文章,转载请注明出处。