Need explanations on how this code processes Arraylist values

前端 未结 3 1924
迷失自我
迷失自我 2021-01-27 07:00
public static void mystery1(ArrayList list) { 
for (int i = list.size() - 1; i > 0; i--) { 
    if (list.get(i) < list.get(i - 1)) { 
        int el         


        
3条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-01-27 07:19

    As the comments on your questions already stated, it looks like this algorithm does not do what it was made for. This can of course only be verified with the designer of the original code ;).

    Now to give a short idea on what the code does, I've put the intermediate list results for each iteration below. The first position (before the colon) is the value of the index in the iteration.

    // index 6, number 40 is less than 50, so 40 moves to the start of the list
    result: 40  30  20  10  60  50
    // index 5, number 60 is greater than 10, no changes made to the list
    result: 40  30  20  10  60  50
    // index 4, number 10 is less than 20, so 10 moves to the start of the list
    result: 10  40  30  20  60  50
    // index 3, number 30 is less than 40....
    result: 30  10  40  20  60  50
    // index 2, number 10 is less than 30....
    result: 10  30  40  20  60  50
    

    et voila, there is your result.

提交回复
热议问题