Upgrade to Pro — share decks privately, control downloads, hide ads and more …

42Tokyo-push_swap

love42
February 28, 2023

 42Tokyo-push_swap

love42

February 28, 2023
Tweet

More Decks by love42

Other Decks in Programming

Transcript

  1. PUSH_SWAP
    PUSH_SWAP

    View Slide

  2. View Slide

  3. (ID:terabu : )
    Piscine:2022-08 / :2022-10
    5

    View Slide

  4. View Slide

  5. 1.
    2.
    3.
    push_swap ( )

    View Slide

  6. View Slide

  7. 1.
    2.
    3.

    View Slide

  8. created by nafuka
    push_swap

    View Slide

  9. View Slide

  10. View Slide

  11. 2

    View Slide

  12. 1.
    2.
    3.
    4.

    View Slide

  13. View Slide

  14. 6
    1 2 3 -> x ( )
    1 3 2 -> 2 1 3 ( rra ) -> 1 2 3 ( sa )
    2 1 3 -> 1 2 3 ( sa )
    2 3 1 -> 1 2 3 ( rra )
    3 1 2 -> 1 2 3 ( ra )
    3 2 1 -> 2 1 3 ( ra ) -> 1 2 3 ( sa )

    View Slide

  15. View Slide

  16. 6

    View Slide

  17. View Slide

  18. View Slide

  19. View Slide

  20. ( )

    View Slide

  21. created by terabu
    push_swap

    View Slide

  22. ( )
    (push_swap )

    View Slide

  23. View Slide

  24. 2

    View Slide

  25. View Slide

  26. View Slide

  27. View Slide


  28. 8, 100, 33, 12, 6, 1211
    1, 4, 3, 2, 0, 5

    View Slide

  29. View Slide

  30. ( )

    View Slide


  31. View Slide

  32. View Slide

  33. 0, 1
    1 a 2
    int 2147483648 -2147483649
    1 2 3
    3 2 2 1
    etc...

    View Slide

  34. View Slide

  35. push_swap

    View Slide

  36. View Slide

  37. View Slide

  38. push_swap ( )

    View Slide

  39. View Slide

  40. push_swap
    ( )

    View Slide

  41. View Slide

  42. View Slide

  43. View Slide

  44. View Slide

  45. View Slide

  46. 1.
    2.
    3.
    4.
    5.

    View Slide

  47. View Slide

  48. B → A
    B → A
    A → B
    YES
    NO
    YES
    NO
    A → B
    ( )

    View Slide

  49. View Slide

  50. B
    B

    View Slide

  51. A B
    10
    16
    17
    14
    13
    12
    15
    18
    11
    5
    3
    6
    2
    9
    7
    4
    1
    8
    8
    10
    16
    1
    17
    4
    7
    14
    9
    13
    2
    12
    6
    15
    18
    11
    3
    5
    A B A B
    pb
    ra
    ra
    pb
    ra
    pb
    rb
    rb
    pa
    rb
    pa
    pa

    View Slide

  52. A B A B
    8
    7
    9
    6
    10
    |
    18
    5
    3
    2
    4
    1
    4
    5
    8
    7
    9
    6
    10
    |
    18
    1
    3
    2
    A B
    4
    5
    8
    7
    9
    6
    10
    |
    18
    1
    2
    3
    A B
    4
    5
    8
    7
    9
    6
    10
    |
    18
    1
    2
    3
    pa
    rb
    rb
    pa
    rra
    sa
    pa
    ra
    pa
    ra
    pa
    ra

    View Slide

  53. A B A B
    8
    7
    9
    6
    10
    |
    18
    1-3
    5
    4
    8
    7
    9
    6
    10
    |
    18
    1-3
    4
    5
    A B
    8
    7
    9
    6
    10
    |
    18
    1-3
    4
    5

    View Slide

  54. A B A B A B
    10
    |
    18
    1
    |
    5
    6
    9
    7
    8
    8
    9
    10
    |
    18
    1
    |
    5
    6
    7
    8
    9
    10
    |
    18
    1
    |
    5
    6
    7

    View Slide

  55. A B A B
    10-18
    10
    |
    18
    1
    |
    7
    9
    8
    10
    |
    18
    1
    |
    7
    8
    9
    A B
    10
    |
    18
    1
    |
    7
    8
    9

    View Slide

  56. View Slide

  57. A B
    10 - 18
    8 - 9
    6 - 7
    4 - 5
    1 - 3
    A B
    8 - 9
    6 - 7
    10 - 18
    4 - 5
    1 - 3
    A B
    4 - 5
    8 - 9
    6 - 7
    10 - 18 1 - 3
    A B
    4 - 5
    8 - 9
    6 - 7
    10 - 18
    1 - 3
    A B
    8 - 9
    5 - 7
    10 - 18 4 - 5
    A B
    8 - 9
    6 - 7
    10 - 18
    1 - 3
    4 - 5
    A B
    10 - 18
    1 - 5
    8 - 9
    6 - 7
    A B
    8 - 9
    10 - 18
    1 - 5 6 - 7
    A B
    8 - 9
    10 - 18
    1 - 5
    6 - 7
    A B
    10 - 18
    1 - 7 8 - 9
    A B
    10 - 18
    1 - 7
    8 - 9
    A B
    1 - 9 10 - 18
    B
    4 →A
    B → A
    A
    B → A
    A
    B
    2 →A
    B
    →A
    1
    → B
    A → B
    2
    4 → B
    1
    2 → B
    B
    2 →A
    B
    →A
    B
    →A
    B
    →A

    View Slide

  58. View Slide

  59. A → B

    A push

    View Slide

  60. 16 → 8 → 4 → 2
    2 → 4 → 8 → 16
    4 8 16

    View Slide

  61. 1.
    2.

    View Slide

  62. View Slide

  63. View Slide

  64. View Slide

  65. View Slide

  66. View Slide

  67. int func(int N)
    {
    int A;
    if (N == 1)
    return (1);
    A = func(N - 1) * N; //
    printf("%d\n", N);
    return (A);
    }

    View Slide

  68. printf
    func ( 5 ) = func ( 4 ) x 5
    func ( 4 ) = func ( 3 ) x 4
    func ( 3 ) = func ( 2 ) x 3
    func ( 2 ) = func ( 1 ) x 2
    func ( 1 ) = 1
    1
    2
    6
    24
    120
    printf
    2
    3
    4
    5

    View Slide

  69. A push

    View Slide

  70. View Slide

  71. B → A( ) A → B( )
    1

    View Slide

  72. A B
    10 - 18
    8 - 9
    6 - 7
    4 - 5
    1 - 3
    A B
    8 - 9
    6 - 7
    10 - 18
    4 - 5
    1 - 3
    A B
    4 - 5
    8 - 9
    6 - 7
    10 - 18 1 - 3
    A B
    4 - 5
    8 - 9
    6 - 7
    10 - 18
    1 - 3
    A B
    8 - 9
    5 - 7
    10 - 18 4 - 5
    A B
    8 - 9
    6 - 7
    10 - 18
    1 - 3
    4 - 5
    A B
    10 - 18
    1 - 5
    8 - 9
    6 - 7
    A B
    8 - 9
    10 - 18
    1 - 5 6 - 7
    A B
    8 - 9
    10 - 18
    1 - 5
    6 - 7
    A B
    10 - 18
    1 - 7 8 - 9
    A B
    10 - 18
    1 - 7
    8 - 9
    A B
    1 - 9 10 - 18
    B
    4 →A
    B → A
    A
    B → A
    A
    B
    2 →A
    B
    →A
    1
    → B
    A → B
    2
    4 → B
    1
    2 → B
    B
    2 →A
    B
    →A
    B
    →A
    B
    →A

    View Slide

  73. View Slide

  74. A = 4
    B → A
    A → B
    A = 2
    B → A
    A → B
    A = 2
    B → A
    A → B
    B → A B → A B → A B → A
    A A push
    B B
    B = 5
    B = 3 B = 2
    B = 4
    B = 2 B = 2
    B = 9

    View Slide

  75. View Slide


  76. View Slide

  77. View Slide

  78. View Slide

  79. ...

    View Slide

  80. View Slide