氣泡排序法 –o(n -...

160
9 氣泡排序法 – O(n 2 ) 未排序資料 18, 2, 13, -1, 10, 7, 9, -3 由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18 13 18 -3 -1 10 7 2 1

Upload: others

Post on 18-Oct-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

  • 9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -3

    -1

    10

    7

    2

    1

  • 9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -3

    -1

    10

    7

    2

    2

  • 9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -3

    -1

    10

    7

    2

    3

  • 9

    -3

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    4

  • 9

    -3

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    5

  • 9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -3

    6

  • 9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -3

    7

  • 9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -3

    8

  • 9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -3

    9

  • 9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -3

    10

  • 9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -3

    11

  • 9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -3

    12

  • 9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -3

    13

  • 9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    -1

    10

    7

    2

    14

    18

    -3

  • 13

    2

    9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -318

    9

    -1

    10

    7

    -3

    15

  • 13

    2

    9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -318

    9

    -1

    10

    7

    -3

    16

  • 13

    2

    9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -318

    9

    -1

    10

    7

    -3

    17

  • 13

    2

    9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -318

    9

    -1

    10

    7

    -3

    18

  • 13

    2

    9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -318

    9

    -1

    10

    7

    -3

    19

  • 13

    2

    9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -318

    9

    -1

    10

    7

    -3

    20

  • 13

    2

    9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -318

    9

    -1

    10

    7

    -3

    21

  • 13

    2

    9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -318

    9

    10

    7

    -3

    -1

    22

  • 13

    2

    9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -318

    9

    10

    7

    -3

    -1

    23

  • 13

    2

    9

    氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序之資料 -3, -1, 2, 7, 9, 10, 13, 18

    13

    18

    -1

    10

    7

    2

    -3

    9

    10

    7

    -3

    24

    18

    -1

  • 13

    2

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    -1

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    25

  • 13

    2

    9 9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -1

    2

    -3

    -1

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    26

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -1

    2

    -3

    -1

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    27

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -1

    2

    -3

    -1

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    28

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -1

    2

    -3

    -1

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    29

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -1

    2

    -3

    -1

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    30

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -1

    2

    -3

    -1

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    31

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -1

    2

    -3

    -1

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    32

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    7

    10

    -1-3

    -1

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    33

    18

    2

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    34

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    35

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    36

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    37

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    38

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    39

    18

    7

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    -3

    13

    18

    9

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    40

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    -3

    13

    18

    9

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    41

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    -3

    13

    18

    9

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    42

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    -3

    13

    18

    9

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    43

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    -3

    13

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    44

    18

    9

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    -3

    13

    18

    9

    7

    10

    -1

    2

    -3

    13

    18

    97

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    45

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    -3

    13

    18

    9

    7

    10

    -1

    2

    -3

    13

    18

    97

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    46

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    -3

    13

    18

    9

    7

    10

    -1

    2

    -3

    13

    97

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    47

    18

    10

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    -3

    13

    18

    9

    7

    10

    -1

    2

    -3

    13

    18

    97

    10

    -1

    2

    -3

    13

    18

    9

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    48

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    -3

    13

    18

    9

    7

    10

    -1

    2

    -3

    13

    18

    97

    10

    -1

    2

    -3

    9

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    49

    13

    18

  • 13

    2

    9

    9

    氣泡排序法 – O(n2)

    13

    18

    -1

    10

    7

    2

    -3

    18

    9

    10

    7

    -3

    13

    18

    7

    10

    -12

    -3

    -1

    -3

    13

    18

    7

    10

    -1

    2

    -3

    13

    18

    9

    7

    10

    -1

    2

    -3

    13

    18

    97

    10

    -1

    2

    -3

    13

    18

    9

    7

    10

    -1

    2

    -3

    1318

    9

    7

    10

    -1

    2

    9

    每一階段將範圍內最小的元素移到最前面怎麼好像不只最小的元素在動呢?? 因為事先不知道哪一個最小, 所以來個打帶跑一邊尋找最小的, 一邊把目前知道的最小元素往前移動

    50

  • • 規劃變數來存放資料, 用迴圈來完成重複的動作

    51

  • • 規劃變數來存放資料, 用迴圈來完成重複的動作

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

    52

  • tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    • 規劃變數來存放資料, 用迴圈來完成重複的動作

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

    53

  • tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    • 規劃變數來存放資料, 用迴圈來完成重複的動作

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

    54

  • tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (j=n-2; j>=0; j--)

    • 規劃變數來存放資料, 用迴圈來完成重複的動作

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

    55

  • tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (i=0; i=i; j--)

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

    56

  • tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (i=0; i=i; j--)

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

    57

  • tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (i=0; i=i; j--)

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

    58

  • tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (i=0; idata[j+1])swap(&data[j], &data[j+1]);

    for (j=n-2; j>=i; j--)

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

    59

  • tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (i=0; idata[j+1])swap(data+j, data+j+1);

    for (j=n-2; j>=i; j--)

    if (data[j]>data[j+1])swap(&data[j], &data[j+1]);

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

    60

  • • (n-1)+(n-2)+…+1 = n(n-1)/2 comparisons

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (i=0; idata[j+1])swap(data+j, data+j+1);

    for (j=n-2; j>=i; j--)

    if (data[j]>data[j+1])swap(&data[j], &data[j+1]);

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

    61

  • • (n-1)+(n-2)+…+1 = n(n-1)/2 comparisons O(n2) comparisons

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (i=0; idata[j+1])swap(data+j, data+j+1);

    for (j=n-2; j>=i; j--)

    if (data[j]>data[j+1])swap(&data[j], &data[j+1]);

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

    62

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    9

    13

    18

    -3

    -1

    10

    7

    2

    63

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    9

    13

    18

    -3

    -1

    10

    7

    2

    64

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    9

    13

    18

    -3

    -1

    10

    7

    2

    65

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    9

    -3

    13

    18

    -1

    10

    7

    2

    66

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    9

    -3

    13

    18

    -1

    10

    7

    2

    67

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    9

    13

    18

    -1

    10

    7

    2

    -3

    68

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    9

    13

    18

    -1

    10

    7

    2

    -3

    69

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    9

    13

    18

    -1

    10

    7

    2

    -3

    70

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    9

    13

    18

    -1

    10

    7

    2

    -3

    71

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    9

    13

    18

    -1

    10

    7

    2

    -3

    72

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    9

    13

    18

    -1

    10

    7

    2

    -3

    73

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    9

    13

    18

    -1

    10

    7

    2

    -3

    74

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    9

    13

    18

    -1

    10

    7

    2

    -3

    75

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    9

    13

    18

    -1

    10

    7

    2

    76

    -3

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    13

    2

    -318

    9

    -1

    10

    7

    77

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    13

    2

    -318

    9

    -1

    10

    7

    78

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    13

    2

    -318

    9

    -1

    10

    7

    79

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    13

    2

    -318

    9

    -1

    10

    7

    80

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    13

    2

    -318

    9

    -1

    10

    7

    81

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    13

    2

    -318

    9

    -1

    10

    7

    82

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    13

    2

    -318

    9

    -1

    10

    7

    83

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    13

    2

    -318

    9

    10

    7

    -1

    84

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    13

    2

    -318

    9

    10

    7

    -1

    85

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    13

    2

    -3

    18

    9

    10

    7

    86

    -1

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    9

    -3

    13

    18

    7

    10

    -1

    2

    87

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    9

    -3

    13

    18

    7

    10

    -1

    2

    88

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    9

    -3

    13

    18

    7

    10

    -1

    2

    89

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    9

    -3

    13

    18

    7

    10

    -1

    2

    90

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    9

    -3

    13

    18

    7

    10

    -1

    2

    91

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    9

    -3

    13

    18

    7

    10

    -1

    2

    92

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    9

    -3

    13

    18

    7

    10

    -1

    2

    93

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    9

    -3

    13

    18

    7

    10

    -1

    94

    2

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3

    13

    18

    7

    10

    -1

    2

    9

    95

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3

    13

    18

    7

    10

    -1

    2

    9

    96

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3

    13

    18

    7

    10

    -1

    2

    9

    97

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3

    13

    18

    7

    10

    -1

    2

    9

    98

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3

    13

    18

    7

    10

    -1

    2

    9

    99

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3

    13

    18

    10

    -1

    2

    9

    100

    7

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 13, 10

    -3

    13

    18

    9

    7

    10

    -1

    2

    101

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 10, 13

    -3

    13

    18

    9

    7

    10

    -1

    2

    102

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 10, 13

    -3

    13

    18

    9

    7

    10

    -1

    2

    103

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 10, 13

    -3

    13

    18

    9

    7

    10

    -1

    2

    104

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 10, 13

    -3

    13

    18

    7

    10

    -1

    2

    105

    9

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 10, 13

    -3, -1, 2, 7, 9, 18, 10, 13

    -3

    13

    18

    97

    10

    -1

    2

    106

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 10, 13

    -3, -1, 2, 7, 9, 18, 10, 13

    -3

    13

    18

    97

    10

    -1

    2

    107

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 10, 13

    -3, -1, 2, 7, 9, 18, 10, 13

    -3

    13

    18

    97

    -1

    2

    108

    10

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 10, 13

    -3, -1, 2, 7, 9, 18, 10, 13

    -3, -1, 2, 7, 9, 10, 18, 13

    -3

    13

    18

    9

    7

    10

    -1

    2

    109

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 10, 13

    -3, -1, 2, 7, 9, 18, 10, 13

    -3, -1, 2, 7, 9, 10, 18, 13

    -3

    18

    9

    7

    10

    -1

    2

    110

    13

  • 氣泡排序法 – O(n2)未排序資料 18, 2, 13, -1, 10, 7, 9, -3

    由小到大排序完成之資料 -3, -1, 2, 7, 9, 10, 13, 18

    18, 2, 13, -1, 10, 7, 9, -3

    18, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    18, 2, 13, -1, -3, 10, 7, 9

    18, 2, 13, -3, -1, 10, 7, 9

    18, 2, -3, 13, -1, 10, 7, 9

    18, -3, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 10, 7, 9

    -3, 18, 2, 13, -1, 7, 10, 9

    -3, 18, 2, -1, 13, 7, 10, 9

    -3, 18, -1, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 10, 9

    -3, -1, 18, 2, 13, 7, 9, 10

    -3, -1, 18, 2, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 13, 9, 10

    -3, -1, 2, 18, 7, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 13, 10

    -3, -1, 2, 7, 18, 9, 10, 13

    -3, -1, 2, 7, 9, 18, 10, 13

    -3, -1, 2, 7, 9, 10, 18, 13

    -3

    1318

    9

    7

    10

    -1

    2

    -3, -1, 2, 7, 9, 10, 13, 18111

  • 資料的比對次數與交換次數

    112

  • 資料的比對次數與交換次數

    for (i=0; i=i; j--) {

    if (data[j]>data[j+1]) {tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    }

    113

  • 資料的比對次數與交換次數

    for (i=0; i=i; j--) {

    if (data[j]>data[j+1]) {tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    }

    nComp = nComp + 1;

    114

  • 資料的比對次數與交換次數

    for (i=0; i=i; j--) {

    if (data[j]>data[j+1]) {tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    }

    int nComp=0;

    nComp = nComp + 1;

    115

  • 資料的比對次數與交換次數

    for (i=0; i=i; j--) {

    if (data[j]>data[j+1]) {tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    }

    int nComp=0;

    nComp = nComp + 1;

    printf("%d", nComp);116

  • 資料的比對次數與交換次數

    for (i=0; i=i; j--) {

    if (data[j]>data[j+1]) {

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    }

    for (i=0; i=i; j--) {

    if (data[j]>data[j+1]) {tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    }

    int nComp=0;

    nComp = nComp + 1;

    printf("%d", nComp);117

  • 資料的比對次數與交換次數

    for (i=0; i=i; j--) {

    if (data[j]>data[j+1]) {

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    }

    nExch = nExch + 1;

    for (i=0; i=i; j--) {

    if (data[j]>data[j+1]) {tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    }

    int nComp=0;

    nComp = nComp + 1;

    printf("%d", nComp);118

  • 資料的比對次數與交換次數

    for (i=0; i=i; j--) {

    if (data[j]>data[j+1]) {

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    }

    nExch = nExch + 1;

    int nExch=0;for (i=0; i=i; j--) {

    if (data[j]>data[j+1]) {tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    }

    int nComp=0;

    nComp = nComp + 1;

    printf("%d", nComp);119

  • 資料的比對次數與交換次數

    for (i=0; i=i; j--) {

    if (data[j]>data[j+1]) {

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    }

    nExch = nExch + 1;

    int nExch=0;for (i=0; i=i; j--) {

    if (data[j]>data[j+1]) {tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    }

    int nComp=0;

    nComp = nComp + 1;

    printf("%d", nComp); printf("%d", nExch);120

  • 提早結束迴圈

    • 如果在某一個 i 值

    121

  • 提早結束迴圈

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時

    122

  • 提早結束迴圈

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時, 表示已經依照順序排好了

    123

  • 提早結束迴圈

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時, 表示已經依照順序排好了, 可以提早結束迴圈, 例如:

    124

  • 提早結束迴圈

    13

    9

    10

    18

    -3

    7

    -1

    2

    i = 4

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時, 表示已經依照順序排好了, 可以提早結束迴圈, 例如:

    125

  • 提早結束迴圈

    13

    9

    10

    18

    -3

    7

    -1

    2

    i = 4

    j = 6

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時, 表示已經依照順序排好了, 可以提早結束迴圈, 例如:

    126

  • 提早結束迴圈

    13

    9

    10

    18

    -3

    7

    -1

    2

    i = 4

    j = 5

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時, 表示已經依照順序排好了, 可以提早結束迴圈, 例如:

    127

  • 提早結束迴圈

    13

    9

    10

    18

    -3

    7

    -1

    2

    i = 4

    j = 4

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時, 表示已經依照順序排好了, 可以提早結束迴圈, 例如:

    128

  • 提早結束迴圈

    -3

    7

    -1

    2

    i = 4

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時, 表示已經依照順序排好了, 可以提早結束迴圈, 例如:

    13

    9

    10

    18 129

  • 提早結束迴圈

    -3

    7

    -1

    2

    i = 4for (i=0; i=i; j--)if (data[j]>data[j+1]) {

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    ; i++) {

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時, 表示已經依照順序排好了, 可以提早結束迴圈, 例如:

    13

    9

    10

    18 130

  • 提早結束迴圈

    -3

    7

    -1

    2

    i = 4for (i=0; i=i; j--)if (data[j]>data[j+1]) {

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    nExch=0;; i++) {

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時, 表示已經依照順序排好了, 可以提早結束迴圈, 例如:

    13

    9

    10

    18

    int nExch;

    131

  • 提早結束迴圈

    -3

    7

    -1

    2

    i = 4for (i=0; i=i; j--)if (data[j]>data[j+1]) {

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    nExch=0;

    nExch = nExch + 1;

    ; i++) {

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時, 表示已經依照順序排好了, 可以提早結束迴圈, 例如:

    13

    9

    10

    18

    int nExch;

    132

  • 提早結束迴圈

    -3

    7

    -1

    2

    i = 4for (i=0; i=i; j--)if (data[j]>data[j+1]) {

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    nExch=0;

    nExch = nExch + 1;

    && nExch>0; i++) {

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時, 表示已經依照順序排好了, 可以提早結束迴圈, 例如:

    13

    9

    10

    18

    int nExch;

    133

  • 提早結束迴圈

    -3

    7

    -1

    2

    i = 4for (i=0; i=i; j--)if (data[j]>data[j+1]) {

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    }}

    nExch=0;

    nExch = nExch + 1;

    && nExch>0; i++) {int nExch=1;

    • 如果在某一個 i 值, 發現已經沒有任何的資料需要交換時, 表示已經依照順序排好了, 可以提早結束迴圈, 例如:

    13

    9

    10

    18 134

  • 程式做了什麼?

    135

  • 讓它自己說清楚…

    程式做了什麼?

    136

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就

    把目前陣列裡的資料印出來

    程式做了什麼?

    137

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -3

    程式做了什麼?

    138

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -318, 2, 13, -1, 10, 7, -3, 9

    程式做了什麼?

    139

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -318, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    程式做了什麼?

    140

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -318, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    • 好討厭, 為什麼要印那麼多?

    程式做了什麼?

    141

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -318, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    • 好討厭, 為什麼要印那麼多?都看不清楚到底印出什麼了

    程式做了什麼?

    142

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -318, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    • 好討厭, 為什麼要印那麼多?都看不清楚到底印出什麼了有沒有錯? 到底哪裡有錯也不容易找到

    程式做了什麼?

    143

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -318, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    • 好討厭, 為什麼要印那麼多?

    • 重要方法:

    都看不清楚到底印出什麼了有沒有錯? 到底哪裡有錯也不容易找到

    程式做了什麼?

    144

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -318, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    • 好討厭, 為什麼要印那麼多?

    • 重要方法:

    都看不清楚到底印出什麼了有沒有錯? 到底哪裡有錯也不容易找到

    • 重要方法: 想要知道程式做了什麼事, 就是要看到所有的資料變化

    程式做了什麼?

    145

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -318, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    • 好討厭, 為什麼要印那麼多?都看不清楚到底印出什麼了有沒有錯? 到底哪裡有錯也不容易找到

    • 重要方法: 想要知道程式做了什麼事, 就是要看到所有的資料變化, 如果程式最後的表現不對

    程式做了什麼?

    146

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -318, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    • 好討厭, 為什麼要印那麼多?都看不清楚到底印出什麼了有沒有錯? 到底哪裡有錯也不容易找到

    • 重要方法: 想要知道程式做了什麼事, 就是要看到所有的資料變化, 如果程式最後的表現不對, 就需要和手動的資料變化比較

    程式做了什麼?

    147

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -318, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    • 好討厭, 為什麼要印那麼多?都看不清楚到底印出什麼了有沒有錯? 到底哪裡有錯也不容易找到

    程式做了什麼?

    148

    • 重要方法: 想要知道程式做了什麼事, 就是要看到所有的資料變化, 如果程式最後的表現不對, 就需要和手動的資料變化比較, 找到不一致

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -318, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    • 好討厭, 為什麼要印那麼多?都看不清楚到底印出什麼了有沒有錯? 到底哪裡有錯也不容易找到

    • 重要方法: 想要知道程式做了什麼事, 就是要看到所有的資料變化, 如果程式最後的表現不對, 就需要和手動的資料變化比較, 找到不一致, 再去找哪一列程式導致這個中間結果的不一致, 修改它

    程式做了什麼?

    149

  • 讓它自己說清楚… 這個程式要求大家在每一次資料交換之後就把目前

    陣列裡的資料印出來 18, 2, 13, -1, 10, 7, 9, -318, 2, 13, -1, 10, 7, -3, 9

    18, 2, 13, -1, 10, -3, 7, 9

    • 好討厭, 為什麼要印那麼多?都看不清楚到底印出什麼了有沒有錯? 到底哪裡有錯也不容易找到

    • 重要方法: 想要知道程式做了什麼事, 就是要看到所有的資料變化, 如果程式最後的表現不對, 就需要和手動的資料變化比較, 找到不一致, 再去找哪一列程式導致這個中間結果的不一致, 修改它, 這是標準的 Debug 方法

    程式做了什麼?

    150

  • 大部分的實作 - 讓最重的沉下去

    151

  • 大部分的實作 - 讓最重的沉下去

    152

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

  • 大部分的實作 - 讓最重的沉下去

    153

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

  • 大部分的實作 - 讓最重的沉下去

    154

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    int n=8, data[]={18, 2, 13, -1, 10, 7, 9, -3};

  • 大部分的實作 - 讓最重的沉下去

    155

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (j=0; j

  • 大部分的實作 - 讓最重的沉下去

    156

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (i=0; i

  • 大部分的實作 - 讓最重的沉下去

    157

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (i=0; i

  • 大部分的實作 - 讓最重的沉下去

    最主要的差別在於第二層的迴圈

    158

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (i=0; i

  • 大部分的實作 - 讓最重的沉下去

    最主要的差別在於第二層的迴圈

    沉下去 - 由最前面一對 (0,1) 開始向後比 for (j=0; jdata[j+1]) {

    }

    for (i=0; i

  • 大部分的實作 - 讓最重的沉下去

    最主要的差別在於第二層的迴圈

    沉下去 - 由最前面一對 (0,1) 開始向後比 for (j=0; j=i; j--)160

    tmp = data[j];data[j] = data[j+1];data[j+1] = tmp;

    if (data[j]>data[j+1]) {

    }

    for (i=0; i