Я пишу программу, которая принимает массив и использует сортировку оболочки.Уловка в том, что я пытаюсь показать каждый шаг между началом и окончанием.Так как сортировка происходит, я пытаюсь показать каждый проход и следует ли поменять значения.Это то, что я делал, но я понимаю, что это ПУТЬ к замысловатой и не будет работать в любом случае.Но это дает представление о моем мыслительном процессе.Я не включил код сортировки оболочки или любые другие части, потому что мне не нужна помощь с этими ...
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]);
Я сожалею, что это, вероятно, повсеместно, я вижу в своей голове, что нужно сделать, я простоЯ не дошел до того, чтобы на самом деле реализовать его.Я приму всю возможную помощь!