Files
004_comission/_resources/it114105/itp4510/Lab04/Lab4.2
louiscklaw 6c60a73f30 update,
2025-01-31 19:15:17 +08:00
..
2025-01-31 19:15:17 +08:00
2025-01-31 19:15:17 +08:00
2025-01-31 19:15:17 +08:00
2025-01-31 19:15:17 +08:00

### Q1
Show the steps of sorting the integers 23, 48, 11, 3, 79, 35, 7, 19 by using
i. Selection sort
ii. Bubble sort
iii. Insertion sort
iv. Merge sort
v. In-Place Quick sort (with 1 st element as pivot)

```
# Selection sort
23 48 11 3 79 35 7 19
3 [48 11 23 79 35 7 19]
3 7 [11 23 79 35 48 19]
3 7 11 [23 79 35 48 19]
3 7 11 19 [79 35 48 23]
3 7 11 19 23 [35 48 79]
3 7 11 19 23 35 [48 79]
3 7 11 19 23 35 48 [79]

# Bubble Sort
[23 11 3 48 35 7 19] 79
[11 3 23 35 7 19] 48 79
[3 11 23 7 19] 35 48 79
[3 11 7 19] 23 35 48 79
[3 7 11] 19 23 35 48 79
3 7 11 19 23 35 48 79

# Insertion Sort
23 48 11 3 79 35 7 19
[23 48] 11 3 79 35 7 19
[11 23 48] 3 79 35 7 19
[3 11 23 48] 79 35 7 19
[3 11 23 48 79] 35 7 19
[3 11 23 35 48 79] 7 19
[3 7 11 23 35 48 79] 19
[3 7 11 19 23 35 48 79]

# Merge Sort
{23 48 11 3 79 35 7 19}
{23 48 11 3}{79 35 7 19}
{23 48}{11 3} {79 35}{7 19}
{23}{48}{11}{3}{79}{35}{7}{19}
{23 48}{3 11}{35 79}{7 19}
{3 11 23 48} {7 19 35 79}
{3 7 11 19 23 35 48 79}

# Qucik sort

index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |     StoreIndex
data  | 23| 48| 11|  3| 79| 35|  7| 19|         1
Step 1| 23| 48| 11|  3| 79| 35|  7| 19|         1
Step 2| 23| 11| 48|  3| 79| 35|  7| 19|         2
Step 3| 23| 11|  3| 48| 79| 35|  7| 19|         3
Step 4| 23| 11|  3| 48| 79| 35|  7| 19|         3
Step 5| 23| 11|  3| 48| 79| 35|  7| 19|         3
Step 6| 23| 11|  3|  7| 79| 35| 48| 19|         4
Step 7| 23| 11|  3|  7| 19| 35| 48| 79|         5
Step 8| 19| 11|  3|  7| 23| 35| 48| 79|         5
```

### Q2
Show the steps for sorting the integers 79, 48, 35, 23, 19, 11, 7, 3 by using the above five methods.

```
# Selection Sort
79 48 35 23 19 11 7 3
3 [48 35 23 19 11 7 79]
3 7 [35 23 19 11 48 79]
3 7 11 [23 19 35 48 79]
3 7 11 19 [23 35 48 79]
3 7 11 19 23 [35 48 79]
3 7 11 19 23 35 [48 79]
3 7 11 19 23 35 48 [79]

# Bubble Sort
79 48 35 23 19 11 7 3
[48 35 23 19 11 7 3] 79
[35 23 19 11 7 3] 48 79
[23 19 11 7 3] 35 48 79
[19 11 7 3] 23 35 48 79
[11 7 3] 19 23 35 48 79
[7 3] 11 19 23 35 48 79
[3] 7 11 19 23 35 48 79
3 7 11 19 23 35 48 79

# Insertion Sort
79 48 35 23 19 11 7 3
[48 79] 35 23 19 11 7 3
[35 48 79] 23 19 11 7 3
[23 35 48 79] 19 11 7 3
[19 23 35 48 79] 11 7 3
[11 19 23 35 48 79] 7 3
[7 11 19 23 35 48 79] 3
[3 7 11 19 23 35 48 79]

# Merge Sort
{79 48 35 23 19 11 7 3}
{79 48 35 23} {19 11 7 3}
{79 48} {35 23} {19 11} {7 3}
{79} {48} {35} {23} {19} {11} {7} {3}
{48 79} {23 35} {11 19} {3 7}
{23 35 48 79} {3 7 11 19}
{3 7 11 19 23 35 48 79}

# Quick Sort
index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |     StoreIndex
data  | 79| 48| 35| 23| 19| 11|  7|  3|         1
Step 1| 79| 48| 35| 23| 19| 11|  7|  3|         2
Step 2| 79| 48| 35| 23| 19| 11|  7|  3|         3
Step 3| 79| 48| 35| 23| 19| 11|  7|  3|         4
Step 4| 79| 48| 35| 23| 19| 11|  7|  3|         5
Step 5| 79| 48| 35| 23| 19| 11|  7|  3|         6
Step 6| 79| 48| 35| 23| 19| 11|  7|  3|         7
Step 7| 79| 48| 35| 23| 19| 11|  7|  3|         8
Step 8|  3| 48| 35| 23| 19| 11|  7| 79|         8
```

### Q3
| Algorithms | Data is in random order | Data is ascesndinf order(Guess) | Data is in descending order | In place? (yes or no) |
| --- | --- | --- | --- | --- |
| Selection | O(n^2)  | O(n^2) | O(n^2) | yes |
| Bubble | O(n^2) | O(n) | O(n^2) | yes |
| Insertion | O(n^2) | O(n) | O(n^2) | yes |
| Merge | O(n log n) | O(n log n) | O(n log n) | no |
| Quick | O(n log n) | O(n^2) | O(n^2) | yes |