使用快速排序按列对二维数组进行排序

赛亚人

我想使用快速排序按特定列对二维数组进行排序。我已经能够为一维数组实现快速排序。

public class QuickSort1D {

    public static void main(String[] args) {
        int[] A = {9, 3, 10, 4, 1, 44, 12, 2, 90, 0};
        int l = 0;
        int r = A.length-1;
        QuickSort(A, l, r);
        for (int i = 0; i < A.length; i++){
            System.out.print(A[i] + " ");
        }
    }

    private static void QuickSort(int[] a, int l, int r) {
        int i;
        if (r > l){
            i = partition(a, l, r);
            QuickSort(a, l, i-1);
            QuickSort(a, i+1, r);
        }
    }

    private static int partition(int[] a, int l, int r) {
        int v = a[r];
        int i = l;
        int j = r;
        int temp;
        while (i < j){
            while (a[i] < v){
                i = i + 1;
            }
            while ((i < j) && (a[j] >= v)){
                j = j - 1;
            }
            temp = a[i];
            if (i < j){
                a[i] = a[j];
                a[j] = temp;
            }else{
                a[i] = a[r];
                a[r] = temp;
            }
        }
        return i;
    }
}

为此,对于二维数组,我将必须在QuickSort方法中包括用于指定列的参数。我不知道如何从那里继续。

例如,数组最初是

{{4, 1, 3},
{6, 0, 2},
{5, 9, 8}}

并且按第2列排序的数组应为

{{6, 0, 2},
{4, 1, 3},
{5, 9, 8}}
西博

int column在快速排序方法中包含一个参数

然后,您只需将所有内容替换a[x]a[x][column],而swap方法(如果使用temp则为if)保持不变。只需将temp设为int[],而不是int当然,a的类型必须int[][]int[]

完毕 :)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用列索引进行二维数组排序

来自分类Dev

快速排序二维数组

来自分类Dev

JavaScript - 按数字对二维数组进行排序

来自分类Dev

二维数组 - 按行对数字进行排序

来自分类Dev

使用usort()对具有二维排序条件的二维数组进行排序

来自分类Dev

如何在Perl中按列对二维数组进行排序,而忽略某些列呢?

来自分类Dev

按行排序二维数组

来自分类Dev

如何按列对二维整数数组进行排序

来自分类Dev

根据列对二维int数组进行排序的过程

来自分类Dev

对二维数组行进行排序

来自分类Dev

如何对二维数组进行排序?

来自分类Dev

使用状态对二维对象数组进行排序

来自分类Dev

使用插入排序按ID对二维字符串数组进行排序-C#

来自分类Dev

同时对一维数组和二维数组(按列)排序

来自分类Dev

仅按第二行对 np 二维数组进行排序

来自分类Dev

Python:按数组长度对二维数组排序?

来自分类Dev

PHP按多个子键对二维数组进行排序

来自分类Dev

如何在python中对二维数组进行排序

来自分类Dev

在C#中对更大的二维数组进行排序

来自分类Dev

在C ++中对二维数组进行排序

来自分类Dev

Perl用引用对二维数组进行排序

来自分类Dev

对长度不同的二维数组进行排序

来自分类Dev

在Ruby中对二维数组进行排序

来自分类Dev

在 C 中对二维数组(矩阵)进行排序

来自分类Dev

在 Swift 中对 Int 的二维数组进行排序

来自分类Dev

有效地对C中的二维数组的列进行排序

来自分类Dev

Java对二维字符串数组中的列进行排序

来自分类Dev

如何在C中对每列都是不同类型的二维数组进行排序?

来自分类Dev

如何在java中根据列(升序)对二维数组进行排序

Related 相关文章

热门标签

归档