Java-如何根据单个int对数组进行排序

Java-如何根据单个int对数组进行排序,java,sorting,Java,Sorting,假设我有这样一个数组: [9, 7, 13, 24, 2, 16, 3, 10] 我想根据int 9对数组进行排序,所有小于9的值都在左边,所有大于9的值都在右边,可以使用选择排序的版本吗 这里有点难懂你想要的应该是快速排序的一步 我进行了一些修改,以便您可以传递所需的轴作为参数: public static void main(String[] args) { int[] a = new int[]{9,7,13,24,2,16,3,10}; System.out.print

假设我有这样一个数组:

[9, 7, 13, 24, 2, 16, 3, 10]
我想根据int 9对数组进行排序,所有小于9的值都在左边,所有大于9的值都在右边,可以使用选择排序的版本吗


这里有点难懂

你想要的应该是快速排序的一步

我进行了一些修改,以便您可以传递所需的轴作为参数:

public static void main(String[] args) {
    int[] a = new int[]{9,7,13,24,2,16,3,10};
    System.out.println(partition(a,9));//use value 9 as pivot 
    System.out.println(Arrays.toString(a));

}

private static int  partition(int[] a, int pivot){
    int pivotIndex = 0;

    for(int i=0;i<a.length;i++){//find initial pivot Index
        if(a[i]==pivot) {
            pivotIndex = i;
            break;
        }
    }


    int low = 0;
    int high = a.length-1;

    while(low<high){
        while(low<high&&a[high]>=pivot) high--;
        a[pivotIndex] = a[high];
        pivotIndex = high;

        while(low<high&&a[low]<=pivot) low++;
        a[pivotIndex] = a[low];
        pivotIndex= low;
    }

    //Actual pivotIndex finded
    a[pivotIndex] = pivot;

    return pivotIndex;
}

困惑-您想让所有小于9的整数在其左侧,大于9的值在其右侧?这不只是一个常规的排序吗?我认为问题是所有元素的左边小于9,右边大于9。不存在在左/右元素之间排序的问题。这可能是一个一步[Quicksort]的问题。是的,我自己也在考虑更多的Quicksort,其中int 9是轴心,所有值都按pivot@Sean你还在为这个问题寻找解决方案吗?对于这个问题,我有一个简洁明了的解决方案。@Sean,请检查我的答案是否符合您的需要
3
[3, 7, 2, 9, 24, 16, 13, 10]