-5

昇順および降順で配列をソートする方法は理解していますが、作成しようとしている特定のパターンがあります。たとえば、ランダムな順序で配列があります。この配列をパターンでどのようにソートしますか? 「最小、最大、2 番目に小さい、2 番目に大きい、3 番目に小さい、3 番目に大きい...」など アイデアはありますか?

public class Test2 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    int[] array = {1,4,2,6,9,3,65,77,33,22};
    for(int i = 0; i < array.length; i++){
        System.out.print(" " + array[i]);
}     
    wackySort(array);

}


public static void wackySort(int[] nums){
    int sign = 0;
    int temp = 0;
    int temp2 = 0;
//This sorts the array
    for (int i = 0; i < nums.length; i++){
        for (int j = 0; j < nums.length -1; j++){
            if (nums[j] > nums[j+1]){
                temp = nums[j];
                nums[j] = nums[j+1];
                nums[j+1] = temp;

        }
    }

}
// This prints out the new array
            System.out.println();
            for(int i = 0; i < nums.length; i++){
                System.out.print(" " + nums[i]);
            }
            System.out.println();

//This part attempts to fix the array into the order I want it to
            int firstPointer = 0;
            int secondPointer = nums.length -1;
            int[] newarray = new int[nums.length];
    for (int i = 0; i < nums.length -1; i+=2){
        newarray[i] = nums[firstPointer++];
                    newarray[i] = nums[secondPointer--];
} 
            for(int i = 0; i < newarray.length; i++){
                System.out.print(" " + newarray[i]);
}


}
}
4

1 に答える 1

1

これを実現するには、独自のComparatorを作成する必要があります。Java Object Sorting Example (Comparable And Comparator)に関するこの記事を調べてください。それはあなたに役立ちます。

于 2013-07-02T04:27:00.783 に答える