поменять значения в массиве, чтобы сделать порядок от наименьшего - PullRequest
1 голос
/ 04 апреля 2019

Я пишу программу, которая принимает массив и использует сортировку оболочки.Уловка в том, что я пытаюсь показать каждый шаг между началом и окончанием.Так как сортировка происходит, я пытаюсь показать каждый проход и следует ли поменять значения.Это то, что я делал, но я понимаю, что это ПУТЬ к замысловатой и не будет работать в любом случае.Но это дает представление о моем мыслительном процессе.Я не включил код сортировки оболочки или любые другие части, потому что мне не нужна помощь с этими ...

    int array[] = {29, 38, 85, 37, 49, 69, 33, 55, 88, 71, 52, 41}; 


//sorting pass 1
    int pos;
    pos = gap;

    System.out.println("Insert Value: "+ array[pos]);

    if (array[pos]>array[0]){
        System.out.println("    COMPARE: [" +pos+ "]" +array[pos]+ " < [0] ["+array[0]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +pos+ "]" +array[pos]+ " < [0] ["+array[0]+ "]  ? Yes - Move " +
                array[pos]+ " to index [" +pos+ "]");
        System.out.println("INSERT " +array[pos]+ " at index [0]");
    }
    System.out.println("Insert Value: "+ array[pos+1]);

    if (array[pos+1]>array[1]){
        System.out.println("    COMPARE: [" +(pos+1)+ "]" +array[pos+1]+ " < [1] ["+array[1]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +(pos+1)+ "]" +array[pos+1]+ " < [1] ["+array[1]+ "]  ? Yes - Move " +
                array[1]+ " to index [" +(pos+1)+ "]");
        System.out.println("INSERT " +array[pos+1]+ " at index [1]");
    }
    System.out.println("Insert Value: "+ array[pos+2]);

    if (array[pos+2]>array[2]){
        System.out.println("    COMPARE: [" +(pos+2)+ "]" +array[pos+2]+ " < [2] ["+array[2]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +(pos+2)+ "]" +array[pos+2]+ " < [2] ["+array[2]+ "]  ? Yes - Move " +
                array[2]+ " to index [" +(pos+2)+ "]");
        System.out.println("INSERT " +array[pos+2]+ " at index [2]");
    }
    System.out.println("Insert Value: "+ array[pos+3]);

    if (array[pos+3]>array[3]){
        System.out.println("    COMPARE: [" +(pos+3)+ "]" +array[pos+3]+ " < [3] ["+array[3]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +(pos+3)+ "]" +array[pos+3]+ " < [3] ["+array[3]+ "]  ? Yes - Move " +
                array[3]+ " to index [" +(pos+3)+ "]");
        System.out.println("INSERT " +array[pos+3]+ " at index [3]");
    }
    System.out.println("Insert Value: "+ array[pos+4]);

    if (array[pos+4]>array[4]){
        System.out.println("    COMPARE: [" +(pos+4)+ "]" +array[pos+4]+ " < [4] ["+array[4]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +(pos+4)+ "]" +array[pos+4]+ " < [4] ["+array[4]+ "]  ? Yes - Move " +
                array[4]+ " to index [" +(pos+4)+ "]");
        System.out.println("INSERT " +array[pos+4]+ " at index [4]");
    }
    System.out.println("Insert Value: "+ array[pos+5]);

    if (array[pos+5]>array[5]){
        System.out.println("    COMPARE: [" +(pos+5)+ "]" +array[pos+5]+ " < [5] ["+array[5]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +(pos+5)+ "]" +array[pos+5]+ " < [5] ["+array[5]+ "]  ? Yes - Move " +
                array[5]+ " to index [" +(pos+5)+ "]");
        System.out.println("INSERT " +array[pos+5]+ " at index [5]");
    }
    System.out.println("Insert Value: "+ array[pos+6]);

    if (array[pos+6]>array[6]){
        System.out.println("    COMPARE: [" +(pos+6)+ "]" +array[pos+6]+ " < [6] ["+array[6]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +(pos+6)+ "]" +array[pos+6]+ " < [6] ["+array[6]+ "]  ? Yes - Move " +
                array[6]+ " to index [" +(pos+6)+ "]");
        System.out.println("INSERT " +array[pos+6]+ " at index [6]");
    }
    System.out.println("Insert Value: "+ array[pos+7]);

    if (array[pos+7]>array[7]){
        System.out.println("    COMPARE: [" +(pos+7)+ "]" +array[pos+7]+ " < [7] ["+array[7]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +(pos+7)+ "]" +array[pos+5]+ " < [7] ["+array[7]+ "]  ? Yes - Move " +
                array[7]+ " to index [" +(pos+7)+ "]");
        System.out.println("INSERT " +array[pos+7]+ " at index [7]");
    }     
    System.out.println("Insert Value: "+ array[pos+8]);

    if (array[pos+8]>array[8]){
        System.out.println("    COMPARE: [" +(pos+8)+ "]" +array[pos+8]+ " < [8] ["+array[8]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +(pos+8)+ "]" +array[pos+8]+ " < [8] ["+array[8]+ "]  ? Yes - Move " +
                array[8]+ " to index [" +(pos+8)+ "]");
        System.out.println("INSERT " +array[pos+8]+ " at index [8]");
    }
    System.out.println("Insert Value: "+ array[pos+9]);

    if (array[pos+9]>array[9]){
        System.out.println("    COMPARE: [" +(pos+9)+ "]" +array[pos+9]+ " < [9] ["+array[9]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +(pos+9)+ "]" +array[pos+9]+ " < [9] ["+array[9]+ "]  ? Yes - Move " +
                array[9]+ " to index [" +(pos+9)+ "]");
        System.out.println("INSERT " +array[pos+5]+ " at index [9]");
    }
    System.out.println("Insert Value: "+ array[pos+5]);

    if (array[pos+10]>array[10]){
        System.out.println("    COMPARE: [" +(pos+10)+ "]" +array[pos+10]+ " < [10] ["+array[10]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +(pos+10)+ "]" +array[pos+10]+ " < [10] ["+array[10]+ "]  ? Yes - Move " +
                array[10]+ " to index [" +(pos+10)+ "]");
        System.out.println("INSERT " +array[pos+10]+ " at index [10]");
    }     
    System.out.println("Insert Value: "+ array[pos+11]);

    if (array[pos+11]>array[11]){
        System.out.println("    COMPARE: [" +(pos+11)+ "]" +array[pos+11]+ " < [11] ["+array[11]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +(pos+11)+ "]" +array[pos+11]+ " < [11] ["+array[11]+ "]  ? Yes - Move " +
                array[10]+ " to index [" +(pos+11)+ "]");
        System.out.println("INSERT " +array[pos+11]+ " at index [11]");
    }     
    System.out.println("Insert Value: "+ array[pos+5]);

    if (array[pos+12]>array[12]){
        System.out.println("    COMPARE: [" +(pos+12)+ "]" +array[pos+12]+ " < [12] ["+array[12]+ "]  ? No");
        System.out.println("    Already inserted in correct place");
    }else{
        System.out.println("    COMPARE: [" +(pos+12)+ "]" +array[pos+12]+ " < [12] ["+array[12]+ "]  ? Yes - Move " +
                array[12]+ " to index [" +(pos+12)+ "]");
        System.out.println("INSERT " +array[pos+12]+ " at index [12]");

Так что мне нужна помощь в написании этого;Мне нужен способ реализовать все эти операторы if, которые можно использовать для каждого прохода, а затем после каждого прохода реализовывать новый массив ... Я думаю, что мне нужно написать цикл, который будет увеличивать значения по мере продвижения по массиву.Я также собирался реализовать это для реализации поменявшихся значений.У меня есть 5 реализованных, потому что для этого конкретного прохода, где происходит обмен.

    int temp = array[
    array[5] = array[pos+5];
    array[pos+5] = temp;
    System.out.println(array[5]);

Я сожалею, что это, вероятно, повсеместно, я вижу в своей голове, что нужно сделать, я простоЯ не дошел до того, чтобы на самом деле реализовать его.Я приму всю возможную помощь!

...