Presentation is loading. Please wait.

Presentation is loading. Please wait.

© Ronaldo Menezes, Florida Tech

Similar presentations


Presentation on theme: "© Ronaldo Menezes, Florida Tech"— Presentation transcript:

1 © Ronaldo Menezes, Florida Tech
Brute Force Brute force is a straightforward approach to solving a problem usually directly based on the problem's statement and on the definitions of the concepts involved [Levitin 2003] It is considered a design strategy although the strategy is simply: just do something that works! As an example consider the exponentiation problem Compute an for a given number a and a nonnegative integer n. The brute force approach consists of: Can you calculate an using less then (n-1) multiplications? What is the fundamental operation in problem? The multiplication. Take for instance a8, it would take 7 multiplications. But if we write f(x) = x * x, we could do f(f(f(x))) and perform only 3 multiplications. © Ronaldo Menezes, Florida Tech

2 © Ronaldo Menezes, Florida Tech
Uses of Brute Force The brute force design technique rarely yields efficient algorithms. But it does have a few advantages: Brute force algorithms are normally more general. In fact it is normally difficult to point out problems that a brute-force approach cannot tackle. Most elementary algorithmic tasks use brute force solutions. e.g. Calculating the sum of a list of numbers; finding the max element in a list. The solutions are normally reasonable for practical instances sizes. A simple (correct) solution may serve as the basis for testing more sophisticated solutions. as a yardstick with which to judge more efficient alternatives for solving the problem – a benchmark. © Ronaldo Menezes, Florida Tech

3 Sequential Search (Another example of Brute-Force)
The algorithm below is an excellent illustration of a brute force approach It is simple (it's strength) It is not efficient (it's weakness) SequentialSearch(A[0..n],K) A[n] = K i = 0 while (A[i] != K) do i = i + 1 if (i < n) return i else return -1 © Ronaldo Menezes, Florida Tech

4 © Ronaldo Menezes, Florida Tech
String Matching This problem is very common and is even implemented in Java's String class as a function called indexOf(String s) The problem is: given a string of n characters called text and another of m characters (m<=n) called pattern, find a substring of text that matches the pattern. More precisely, we want to find i – the index of the leftmost character of the first matching substring in the text © Ronaldo Menezes, Florida Tech

5 String Matching Example
N O B O D Y _ N O T I C E D _ H I M N O T Write the algorithm as an exercise © Ronaldo Menezes, Florida Tech

6 General Description of the Algorithm
Step 1 Align pattern at beginning of text Step 2 Moving from left to right, compare each character of pattern to the corresponding character in text until all characters are found to match (successful search); or a mismatch is detected Step 3 While pattern is not found and the text is not yet exhausted, realign pattern one position to the right and repeat Step 2 © Ronaldo Menezes, Florida Tech

7 String Matching Brute-Force Algorithm
BruteForceStringMatch(T[0..n-1],P[0..m-1]) for i = 0 to n – m do j = 0 while (j < m) and (P[j] = T[i+j]) do j = j + 1 if (j = m) return i return -1 © Ronaldo Menezes, Florida Tech

8 © Ronaldo Menezes, Florida Tech
Brute Force for the TSP The Travelling Salesman Problem consists of finding a cycle in a graph, which passes through all nodes and whose sum of the weights of the edges is minimum amongst all possible cycles in the graph A cycle that all nodes in a graph only once is called a Hamiltonian Cycle 1. List all possible Hamiltonian Cycles 2. Find the weight for each of these cycles 3. Chose the one with the minimum total weight Benefits: it always finds the solution Drawbacks: it is only practical in small graphs. In a reasonable machine it takes approximately graph with 10 nodes. 20 seconds graph with 15 nodes. 50 days graph with 16 nodes. 2 years graph with 20 nodes. 193,000 years © Ronaldo Menezes, Florida Tech

9 The Assignment Problem
There are n people who need to be assigned to n jobs, one person per job. The cost of assigning person i to job j is C[i,j]. Find an assignment that minimizes the total cost. Job 0 Job 1 Job 2 Job 3 Person Person Person Person What is the algorithmic plan (brute-force) Generate all legitimate assignments, compute their costs, and select the cheapest one. How many assignments are there? n! © Ronaldo Menezes, Florida Tech

10 The Assignment Problem
C = Assignment (col.#s) Total Cost 1, 2, 3, =18 1, 2, 4, =30 1, 3, 2, =24 1, 3, 4, =26 1, 4, 2, =33 1, 4, 3, =23 etc. For this particular instance, the optimal assignment is: 2,1,3,4 © Ronaldo Menezes, Florida Tech

11 Sorting Consider a sequence S = {s1,s2,s3,...,sn} composed of n>=0 elements drawn from a universe U The goal of sorting is to rearrange the elements of S and produce another sequence S' such that elements of S appear in order What does it mean to say "in order"? Given a relation, say < It has to be a total order For all pairs of elements (i,j), exact one of the following is true: i<j, i=j, j<i (elements are comparable) For all triples (i,j,k), i<j ^ j<k <=> i<k (relation is transitive)

12 Sorting Algorithms Sorting is a very common operation.
We're used to the idea of having things ordered in some intelligent way Computer applications are often given unordered set of elements which need to be processed When structures are sorted, the processing time is normally improved because we can make assumptions about the organization of the data Imagine if you had a book whose index (on the back) was not in alphabetical order! Would you try to find the owner of phone number in a phone book if you're given only the number? There are several solutions that can be used to sort structures Different performance Different properties

13 Stable vs. Non-Stable Sorts
We frequently use sorting methods for items with multiple keys Sometimes we need to apply the sorting with different keys For instance we want to sort a list of people based on first name and than on age So Black age 30 should appear before Jones age 30 If we sort a list based on the first key (name) and then apply a sort based on the second key (age) how can we guarantee that the list is still ordered based on the first key? Definition: A sorting method is said the be stable if it preserves the relative order of the items with duplicated keys on the list © Ronaldo Menezes, Florida Tech

14 An Example of a Stable Sort (adapted from Sedgewick)
Adams (30) Washington (23) Wilson (50) Black (23) Brown (40) Smith (30) Thompson (40) Jackson (23) White (50) Jones (50) Adams (30) Black (23) Brown (40) Jackson (23) Jones (50) Smith (30) Thompson (40) Washington (23) White (50) Wilson (50) SORT BY NAME Black (23) Jackson (23) Washington (23) Adams (30) Smith (30) Brown (40) Thompson (40) Jones (50) White (50) Wilson (50) SORT BY AGE

15 Why is Stability Important?
Stable algorithms tend to be more efficient in practice If two keys don’t need to be swapped they aren’t Stable algorithms are, in general, easier to be parallelized More importantly they allow multi-key sort to be easily implemented by combining multiple runs the sorting algorithm.

16 Selection Sort As the name suggests, selection sort orders a list of elements by finding the index of the maximum element (selecting the element) and putting it in its place in the list What can we say about selection sort? It is a simple algorithm it is inefficient for large values of n, where n is the size of the list. Can be easily implemented on linked lists.

17 Selection Sort Algorithm
void selectionSort(int list[]) { int last = list.length; int maxPos; while (last > 0) { // INV: list[last-1] ... list[list.length-1] is sorted && // everything in list[0] ... list[last] <= // everything in list[last+1] ... last[list.length-1] maxPos = findMax(list,last+1); swap(list,maxPos,last); last--; } © Ronaldo Menezes, Florida Tech

18 © Ronaldo Menezes, Florida Tech
View of Selection Sort 12 4 7 6 1 21 2 9 last(7) © Ronaldo Menezes, Florida Tech

19 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(5) 12 4 7 6 1 21 2 9 last(7) © Ronaldo Menezes, Florida Tech

20 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(5) 12 4 7 6 1 9 2 21 last(7) © Ronaldo Menezes, Florida Tech

21 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(5) 12 4 7 6 1 9 2 21 last(6) © Ronaldo Menezes, Florida Tech

22 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(0) 12 4 7 6 1 9 2 21 last(6) © Ronaldo Menezes, Florida Tech

23 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(0) 2 4 7 6 1 9 12 21 last(6) © Ronaldo Menezes, Florida Tech

24 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(0) 2 4 7 6 1 9 12 21 last(5) © Ronaldo Menezes, Florida Tech

25 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(5) 2 4 7 6 1 9 12 21 last(5) © Ronaldo Menezes, Florida Tech

26 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(5) 2 4 7 6 1 9 12 21 last(5) © Ronaldo Menezes, Florida Tech

27 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(5) 2 4 7 6 1 9 12 21 last(4) © Ronaldo Menezes, Florida Tech

28 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(2) 2 4 7 6 1 9 12 21 last(4) © Ronaldo Menezes, Florida Tech

29 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(2) 2 4 1 6 7 9 12 21 last(4) © Ronaldo Menezes, Florida Tech

30 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(2) 2 4 1 6 7 9 12 21 last(3) © Ronaldo Menezes, Florida Tech

31 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(3) 2 4 1 6 7 9 12 21 last(3) © Ronaldo Menezes, Florida Tech

32 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(3) 2 4 1 6 7 9 12 21 last(3) © Ronaldo Menezes, Florida Tech

33 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(3) 2 4 1 6 7 9 12 21 last(2) © Ronaldo Menezes, Florida Tech

34 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(1) 2 4 1 6 7 9 12 21 last(2) © Ronaldo Menezes, Florida Tech

35 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(1) 2 1 4 6 7 9 12 21 last(2) © Ronaldo Menezes, Florida Tech

36 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(1) 2 1 4 6 7 9 12 21 last(1) © Ronaldo Menezes, Florida Tech

37 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(0) 2 1 4 6 7 9 12 21 last(1) © Ronaldo Menezes, Florida Tech

38 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(0) 1 2 4 6 7 9 12 21 last(1) © Ronaldo Menezes, Florida Tech

39 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(0) 1 2 4 6 7 9 12 21 last(0) © Ronaldo Menezes, Florida Tech

40 © Ronaldo Menezes, Florida Tech
View of Selection Sort maxPos(0) 1 2 4 6 7 9 12 21 last(0) © Ronaldo Menezes, Florida Tech

41 Worst Case of Selection Sort
The main loop is executed n-1 times, where n is the size of the array Inside the loop the only operation that does not have constant time is the findMax function that requires n-1 comparisons to find the maximum value in the list The first time findMax is called the list length is n, the second time the list length is n-1, and so forth Thus the number of steps of Selection Sort is given by: © Ronaldo Menezes, Florida Tech

42 Is Selection Sort Stable?
Try this example at home Sort by name and then by age Adams (30) Washington (23) Wilson (50) Black (23) Brown (40) Smith (30) Thompson (40) Jackson (23) White (50) Jones (50) © Ronaldo Menezes, Florida Tech

43 © Ronaldo Menezes, Florida Tech
Insertion Sort The idea here is that we get an element and insert it in the position it belongs. To do this we may to have to shift some elements to open space. Used frequently when we want to generate another list with the elements sorted. That is, keep the original list and generate a new one. It can be also done in place, that is, without requiring an extra list © Ronaldo Menezes, Florida Tech

44 Insertion Sort Algorithm
void insertionSort(int list[]) { int pos = list.length-1; while (pos > 0) { indexNew = pos – 1; valueNew = list[indexNew]; while ((indexNew < list.length-1) && (valueNew > list[indexNew+1])) { list[indexNew] = list[indexNew+1]; indexNew++; } list[indexNew] = valueNew; pos--; © Ronaldo Menezes, Florida Tech

45 View of Insertion Sort valueNew 2 indexNew 12 4 6 7 1 21 2 9 pos

46 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 2 indexNew 12 4 6 7 1 21 2 9 pos © Ronaldo Menezes, Florida Tech

47 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 12 4 6 7 1 21 2 9 pos © Ronaldo Menezes, Florida Tech

48 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 12 4 6 7 1 2 2 9 pos © Ronaldo Menezes, Florida Tech

49 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 12 4 6 7 1 2 2 9 pos © Ronaldo Menezes, Florida Tech

50 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 12 4 6 7 1 2 9 9 pos © Ronaldo Menezes, Florida Tech

51 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 12 4 6 7 1 2 9 9 pos © Ronaldo Menezes, Florida Tech

52 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 12 4 6 7 1 2 9 21 pos © Ronaldo Menezes, Florida Tech

53 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 1 indexNew 12 4 6 7 1 2 9 21 pos © Ronaldo Menezes, Florida Tech

54 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 7 indexNew 12 4 6 7 1 2 9 21 pos © Ronaldo Menezes, Florida Tech

55 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 7 indexNew 12 4 6 1 1 2 9 21 pos © Ronaldo Menezes, Florida Tech

56 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 7 indexNew 12 4 6 1 1 2 9 21 pos © Ronaldo Menezes, Florida Tech

57 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 7 indexNew 12 4 6 1 2 2 9 21 pos © Ronaldo Menezes, Florida Tech

58 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 7 indexNew 12 4 6 1 2 2 9 21 pos © Ronaldo Menezes, Florida Tech

59 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 7 indexNew 12 4 6 1 2 7 9 21 pos © Ronaldo Menezes, Florida Tech

60 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 6 indexNew 12 4 6 1 2 7 9 21 pos © Ronaldo Menezes, Florida Tech

61 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 6 indexNew 12 4 1 1 2 7 9 21 pos © Ronaldo Menezes, Florida Tech

62 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 6 indexNew 12 4 1 1 2 7 9 21 pos © Ronaldo Menezes, Florida Tech

63 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 6 indexNew 12 4 1 2 2 7 9 21 pos © Ronaldo Menezes, Florida Tech

64 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 6 indexNew 12 4 1 2 2 7 9 21 pos © Ronaldo Menezes, Florida Tech

65 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 6 indexNew 12 4 1 2 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

66 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 4 indexNew 12 4 1 2 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

67 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 4 indexNew 12 1 1 2 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

68 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 4 indexNew 12 1 1 2 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

69 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 4 indexNew 12 1 2 2 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

70 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 4 indexNew 12 1 2 2 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

71 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew 4 indexNew 12 1 2 4 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

72 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 12 1 2 4 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

73 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 1 2 4 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

74 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 1 2 4 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

75 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 2 2 4 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

76 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 2 2 4 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

77 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 2 4 4 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

78 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 2 4 4 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

79 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 2 4 6 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

80 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 2 4 6 6 7 9 21 pos © Ronaldo Menezes, Florida Tech

81 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 2 4 6 7 7 9 21 pos © Ronaldo Menezes, Florida Tech

82 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 2 4 6 7 7 9 21 pos © Ronaldo Menezes, Florida Tech

83 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 2 4 6 7 9 9 21 pos © Ronaldo Menezes, Florida Tech

84 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 2 4 6 7 9 9 21 pos © Ronaldo Menezes, Florida Tech

85 © Ronaldo Menezes, Florida Tech
View of Insertion Sort valueNew indexNew 1 2 4 6 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

86 © Ronaldo Menezes, Florida Tech
View of Insertion Sort 1 2 4 6 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

87 Analysis of Insertion Sort (Worst Case)
The main loop is executed n-1 times This means that the inner loop will be called n-1 times The number of steps performed in the inner loop depends on the on the value of indexNew It also depends of the value stored in indexNew, but if you're unlucky the value is greater than all the others on the right-hand side of the list, the inner loop will perform 1 comparison, then 2,...,(n-1) Again based on the same formula, Insertion Sort give us: Is Insertion Sort stable? © Ronaldo Menezes, Florida Tech

88 © Ronaldo Menezes, Florida Tech
Bubble Sort Bubble sort is one of the simplest algorithms for sorting a list but also one of the slowest. Theoretically speaking it has the same efficiency of selection sort Bubble sort maintains the invariant that After each outer loop interaction one element in the list has been placed in his final location Same invariant as selection sort Bubble sort solution is not obvious Today it is obvious to CS students given that it is covered in most books. Unlikely to be the algorithm of choice for someone without algorithmic knowledge © Ronaldo Menezes, Florida Tech

89 © Ronaldo Menezes, Florida Tech
Bubble Sort Algorithm void bubbleSort(int list[]) { // PRE: list is an array indexed // from list[0] to list[n-1] for (int i = list.length-1; i>0; i--){ for (int pos = 0; pos < i; pos++) { if (list[pos] > list[pos+1]) { swap(list,pos,pos+1); } © Ronaldo Menezes, Florida Tech

90 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 12 4 6 7 1 21 2 9 pos © Ronaldo Menezes, Florida Tech

91 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 12 6 7 1 21 2 9 pos © Ronaldo Menezes, Florida Tech

92 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 12 6 7 1 21 2 9 pos © Ronaldo Menezes, Florida Tech

93 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 12 7 1 21 2 9 pos © Ronaldo Menezes, Florida Tech

94 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 12 7 1 21 2 9 pos © Ronaldo Menezes, Florida Tech

95 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 4 4 6 6 6 7 12 1 21 2 9 pos © Ronaldo Menezes, Florida Tech

96 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 7 12 1 21 2 9 pos © Ronaldo Menezes, Florida Tech

97 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 7 1 12 21 2 9 pos © Ronaldo Menezes, Florida Tech

98 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 7 1 12 21 2 9 pos © Ronaldo Menezes, Florida Tech

99 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 7 1 12 21 2 9 pos © Ronaldo Menezes, Florida Tech

100 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 7 1 12 2 21 9 pos © Ronaldo Menezes, Florida Tech

101 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 7 1 12 2 21 9 pos © Ronaldo Menezes, Florida Tech

102 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 7 1 12 2 9 21 pos © Ronaldo Menezes, Florida Tech

103 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 7 1 12 2 9 21 pos © Ronaldo Menezes, Florida Tech

104 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 7 1 12 2 9 21 pos © Ronaldo Menezes, Florida Tech

105 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 7 1 12 2 9 21 pos © Ronaldo Menezes, Florida Tech

106 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 1 7 12 2 9 21 pos © Ronaldo Menezes, Florida Tech

107 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 1 7 12 2 9 21 pos © Ronaldo Menezes, Florida Tech

108 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 1 7 12 2 9 21 pos © Ronaldo Menezes, Florida Tech

109 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 1 7 2 12 9 21 pos © Ronaldo Menezes, Florida Tech

110 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 1 7 2 12 9 21 pos © Ronaldo Menezes, Florida Tech

111 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 1 7 2 9 12 21 pos © Ronaldo Menezes, Florida Tech

112 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 1 7 2 9 12 21 pos © Ronaldo Menezes, Florida Tech

113 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 6 1 7 2 9 12 21 pos © Ronaldo Menezes, Florida Tech

114 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 1 6 7 2 9 12 21 pos © Ronaldo Menezes, Florida Tech

115 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 1 6 7 2 9 12 21 pos © Ronaldo Menezes, Florida Tech

116 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 1 6 7 2 9 12 21 pos © Ronaldo Menezes, Florida Tech

117 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 1 6 2 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

118 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 1 6 2 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

119 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 4 1 6 2 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

120 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 4 6 2 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

121 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 4 6 2 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

122 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 4 6 2 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

123 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 4 2 6 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

124 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 4 2 6 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

125 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 4 2 6 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

126 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 4 2 6 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

127 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 2 4 6 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

128 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 2 4 6 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

129 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 2 4 6 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

130 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 2 4 6 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

131 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 2 4 6 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

132 © Ronaldo Menezes, Florida Tech
View of Bubble Sort pos+1 1 2 4 6 7 9 12 21 pos © Ronaldo Menezes, Florida Tech

133 Analysis of Bubble Sort (Worst Case)
The main loop is executed n-1 times This means that the inner loop will be called n-1 times The number of times the swap is performed depend on the on the value of i which starts with n-1 and goes to 1 Thus the number of comparisons of Bubble Sort is also: Is Bubble Sort stable? © Ronaldo Menezes, Florida Tech


Download ppt "© Ronaldo Menezes, Florida Tech"

Similar presentations


Ads by Google