1 Bubble Sort

Total Page:16

File Type:pdf, Size:1020Kb

1 Bubble Sort Indian Institute of Information Technology Design and Manufacturing, Instructor Kancheepuram, Chennai 600 127, India N.Sadagopan An Autonomous Institute under MHRD, Govt of India Scribe: http://www.iiitdm.ac.in S.Dhanalakshmi COM 209T Design and Analysis of Algorithms -Lecture Notes Sorting Algorithms Objective: This module focuses on design and analysis of various sorting algorithms using paradigms such as Incremental Design and Divide and Conquer. Sorting a list of items is an arrangement of items in ascending (descending) order. We shall discuss six different sorting algorithms and we begin our discussion with Bubble sort. 1 Bubble Sort Bubble sort is a comparison based sorting algorithm wherein comparing adjacent elements is a primitive operation. In each pass, it compares the adjacent elements in the array and exchanges those that are not in order. Basically, each pass through the array places the next largest value in its proper place, hence the number of comparisons reduces by one at each pass. In other words, each item \bubbles"up to the location where it is supposed to be in the sorted sequence. This invariant is maintained by the algorithm in each pass and hence, bubble sort correctly outputs the sorted sequence. For an n-element array, the below pseudo code requires n − i comparisons for the ith iteration (Pass). Origin: Initially, Bubble sort was referred to as \Sorting by exchange" in [1, 2] and further, it is re- ferred to as \Exchange Sorting" in [3, 4]. The term \Bubble Sort " was first used by Iverson in 1962 [5]. Invariant: At the end of ith iteration, the last i elements contain i largest elements. i.e. a[n] contains the largest, a[n − 1] contains the second largest, and so on. At the end of nth iteration, the array is sorted as it contains n largest elements. Pseudo code: Bubble Sort(Array a[]) 1. begin 2. for i = 1 to n − 1 3. for j = 1 to n − i 4. if (a[j] > a[j + 1]) then 5. Swap (a[j]; a[j + 1]) 8. end Run-time Analysis We shall analyze the run-time by considering the best case input and the worst case input. Interestingly, for bubble sort, irrespective of the nature of input, the number of passes to be made is n − 1. Further, the number of comparisons during ith pass is n − i. By the end of every pass, at least one element is placed in its right position. In case of best case input, there is no swapping done and for every other input swapping may be required during each pass. Since the underlying model focuses on the number of comparisons (not on the number of swaps as it is less dominant operation), the number of comparisons is n − 1 + n − 2 + ::: + 2 + 1 = O(n2) for all inputs. Trace of Bubble Sort Algorithm Input: a[9] = f54; 26; 93; 17; 77; 31; 44; 55; 20g Pass 1: Pass 2: Pass 3: 2 Pass 4: Pass 5: Pass 6: 3 Pass 7: Pass 8: In this pass, no exchange for all 8 comparisons. Since, the input array size is 9, the number of passes is 8. The algorithm terminates and the input array contains the sorted sequence. 2 Insertion Sort This is a commonly used sorting algorithm with applications from arranging cards in a card game to ar- ranging examination answer sheets based on students' roll number. Insertion sort follows incremental design wherein we construct a sorted sequence of size two, followed by a sorted sequence of size three, and so on. In this sorting, during ith iteration, the first (i − 1) elements are sorted and ith card is inserted to the correct place by performing linear search on the first (i − 1) elements. This algorithm performs well on smaller inputs and on inputs that are already sorted. Origin: Insertion sort was mentioned by John Mauchly as early as 1946, in the first published discussion on computer sorting [6]. Pseudo code: Insertion Sort(a[]) Source: CLRS 1. begin 2. for j = 2 to n 3. key = a[j] 4. i = j + 1 5. while i > 0 and a[i] > key 6. a[i + 1] = a[i] 7. i = i − 1 8. a[i + 1] =key 9. end Run-time Analysis We shall analyze the run time of insertion sort by considering its worst case and best case behavior. In the below table, for each line of the pseudo code, the cost (the number of times the line is executed) incurred in best and worst case inputs is given. The table presents precise estimate using step count analysis. Alternatively, the cost can also be obtained using recurrence relation. Recurrence relation in worst case: T (n) = T (n − 1) + n − 1, T (2) = 1, solving this using substitution method/recurrence tree method yields T (n) = O(n2). Recurrence relation in best case: T (n) = T (n−1)+1, T (2) = 1, and the solution is T (n) = O(n). 4 Table 1: Step Count Analysis Pseudo code Worst Case Analysis Best Case Analysis I/P: Descending Order I/P: Ascending Order for j = 2 to n n n key = a[j] n − 1 n − 1 i = j + 1 n − 1 n − 1 Pn n(n+1) Pn while i > 0 and a[i] > key j=2(j) = 2 − 1 j=2(1) = n − 1 Pn n(n−1) a[i + 1] = a[i] j=2(j − 1) = 2 0 Pn n(n−1) i = i − 1 j=2(j − 1) = 2 0 a[i + 1] =key n − 1 n − 1 3n2 7n Total 2 + 2 − 4 5n − 4 = θ(n2) = θ(n) Trace of Insertion Sort Algorithm As mentioned, at the end of ith iteration, the first i elements are sorted. So, at the end of nth iteration and for this example, at the end of seventh iteration the given seven elements are sorted. Input: a[7] = {−1; 4; 7; 2; 3; 8; −5g Iteration 1: Iteration 2: Iteration 3: 5 Iteration 4: Iteration 5: Iteration 6: 6 3 Selection Sort It is a natural sorting algorithm [1] in which we find minimum, second minimum, third minimum and so on and arrange them in increasing order. Like bubble sort, irrespective of the input, during ith stage this algorithm incurs (n − i) comparisons. Further, the algorithm does linear search to find ith minimum. Pseudocode: Selection Sort(a[]) 1.begin 2. for j = 1 to n − 1 3. min = j 4. for i = j + 1 to n 5. if a[i] < a[min] 6. min = i 7. Swap(a[j]; a[min]) 8.end Run-time Analysis Note Line 5 of Selection Sort is executed for all inputs. During ith iteration, the statement is executed (n−i) times. Therefore, the total cost is n − 1 + n − 2 + ::: + 1, which is O(n2). Alternatively, the recurrence relation both in worst case and best case is T (n) = T (n − 1) + n − 1, T (2) = 1. Thus, T (n) = θ(n2). Trace of Selection Sort Algorithm Input: a[7] = {−1; 5; 3; 9; 12; 4; 8; 23; 15g 7 4 Merge Sort Merge Sort is based on the paradigm divide and conquer which has divide and conquer (combine) phases. As part of divide phase which is a top-down approach, the input array is split into half, recursively, until the array size reduces to one. That is, given a problem of size n, break it into two sub problems of size n=2, again break each of this sub problems into two sub problems of size n=4, and so on till the sub problem size reduces to n=2k = 1 for some integer k. (see Figure 1(a)). As part of conquer phase which is a bottom-up approach, we combine two sorted arrays of size one to get a sorted array of size two, and combine two sorted arrays of size two to get a sorted array of size 4, and in general, we combine two sorted arrays of size n=2 to get a sorted array of size n. Conquer phase happens when the recursion bottoms out and makes use of a black box which takes two sorted arrays and merges these two to produce one sorted array. In the example illustrated in Figure 1(b), at the last level , the black box combines the sorted array A = f1g and the sorted array B = f4g and results in a sorted array f1; 4g. Similarly, it combines the array {−1g and f8g and results in {−1; 8g. This process continues till the root which eventually contain the sorted output for the given input. Origin: Merge sort is one of the very first methods proposed for computer sorting (sorting numbers using computers) and it was suggested by John Von Neumann as early as 1945 [6]. A detailed discussion and analysis of merge sort was appeared in a report by Goldstine and Neumann as early as 1948 [7]. n Input: 1, 4, 2, 8, -1, 0 n/2 n/2 1, 4, 2, 8, -1, 0 1 4 8 -1 2-1, 8 0 n/4 n/4 n/4 1, 4 n/4 1, 4, 2 8, -1, 0 n/8 n/8 n/8 n/8 n/8 n/8 n/8 n/8 1, 2, 4 -1, 0, 8 1, 4 2 8, -1 0 -1, 0, 1, 2, 4, 8 1 4 8 -1 n/2k = 1 n/2k = 1 1 1 Split Phase Combine Phase (a) (b) Figure 1: (a) Split phase of merge sort (top-down) (b) Conquer phase of merge sort (bottom-up) 8 Pseudocode: Merge-Sort(A; p; r) Source: CLRS begin 1.
Recommended publications
  • CS 758/858: Algorithms
    CS 758/858: Algorithms ■ COVID Prof. Wheeler Ruml Algorithms TA Sumanta Kashyapi This Class Complexity http://www.cs.unh.edu/~ruml/cs758 4 handouts: course info, schedule, slides, asst 1 2 online handouts: programming tips, formulas 1 physical sign-up sheet/laptop (for grades, piazza) Wheeler Ruml (UNH) Class 1, CS 758 – 1 / 25 COVID ■ COVID Algorithms This Class Complexity ■ check your Wildcat Pass before coming to campus ■ if you have concerns, let me know Wheeler Ruml (UNH) Class 1, CS 758 – 2 / 25 ■ COVID Algorithms ■ Algorithms Today ■ Definition ■ Why? ■ The Word ■ The Founder This Class Complexity Algorithms Wheeler Ruml (UNH) Class 1, CS 758 – 3 / 25 Algorithms Today ■ ■ COVID web: search, caching, crypto Algorithms ■ networking: routing, synchronization, failover ■ Algorithms Today ■ machine learning: data mining, recommendation, prediction ■ Definition ■ Why? ■ bioinformatics: alignment, matching, clustering ■ The Word ■ ■ The Founder hardware: design, simulation, verification ■ This Class business: allocation, planning, scheduling Complexity ■ AI: robotics, games Wheeler Ruml (UNH) Class 1, CS 758 – 4 / 25 Definition ■ COVID Algorithm Algorithms ■ precisely defined ■ Algorithms Today ■ Definition ■ mechanical steps ■ Why? ■ ■ The Word terminates ■ The Founder ■ input and related output This Class Complexity What might we want to know about it? Wheeler Ruml (UNH) Class 1, CS 758 – 5 / 25 Why? ■ ■ COVID Computer scientist 6= programmer Algorithms ◆ ■ Algorithms Today understand program behavior ■ Definition ◆ have confidence in results, performance ■ Why? ■ The Word ◆ know when optimality is abandoned ■ The Founder ◆ solve ‘impossible’ problems This Class ◆ sets you apart (eg, Amazon.com) Complexity ■ CPUs aren’t getting faster ■ Devices are getting smaller ■ Software is the differentiator ■ ‘Software is eating the world’ — Marc Andreessen, 2011 ■ Everything is computation Wheeler Ruml (UNH) Class 1, CS 758 – 6 / 25 The Word: Ab¯u‘Abdall¯ah Muh.ammad ibn M¯us¯aal-Khw¯arizm¯ı ■ COVID 780-850 AD Algorithms Born in Uzbekistan, ■ Algorithms Today worked in Baghdad.
    [Show full text]
  • Bubble Sort: an Archaeological Algorithmic Analysis
    Bubble Sort: An Archaeological Algorithmic Analysis Owen Astrachan 1 Computer Science Department Duke University [email protected] Abstract 1 Introduction Text books, including books for general audiences, in- What do students remember from their first program- variably mention bubble sort in discussions of elemen- ming courses after one, five, and ten years? Most stu- tary sorting algorithms. We trace the history of bub- dents will take only a few memories of what they have ble sort, its popularity, and its endurance in the face studied. As teachers of these students we should ensure of pedagogical assertions that code and algorithmic ex- that what they remember will serve them well. More amples used in early courses should be of high quality specifically, if students take only a few memories about and adhere to established best practices. This paper is sorting from a first course what do we want these mem- more an historical analysis than a philosophical trea- ories to be? Should the phrase Bubble Sort be the first tise for the exclusion of bubble sort from books and that springs to mind at the end of a course or several courses. However, sentiments for exclusion are sup- years later? There are compelling reasons for excluding 1 ported by Knuth [17], “In short, the bubble sort seems discussion of bubble sort , but many texts continue to to have nothing to recommend it, except a catchy name include discussion of the algorithm after years of warn- and the fact that it leads to some interesting theoreti- ings from scientists and educators.
    [Show full text]
  • Data Structures & Algorithms
    DATA STRUCTURES & ALGORITHMS Tutorial 6 Questions SORTING ALGORITHMS Required Questions Question 1. Many operations can be performed faster on sorted than on unsorted data. For which of the following operations is this the case? a. checking whether one word is an anagram of another word, e.g., plum and lump b. findin the minimum value. c. computing an average of values d. finding the middle value (the median) e. finding the value that appears most frequently in the data Question 2. In which case, the following sorting algorithm is fastest/slowest and what is the complexity in that case? Explain. a. insertion sort b. selection sort c. bubble sort d. quick sort Question 3. Consider the sequence of integers S = {5, 8, 2, 4, 3, 6, 1, 7} For each of the following sorting algorithms, indicate the sequence S after executing each step of the algorithm as it sorts this sequence: a. insertion sort b. selection sort c. heap sort d. bubble sort e. merge sort Question 4. Consider the sequence of integers 1 T = {1, 9, 2, 6, 4, 8, 0, 7} Indicate the sequence T after executing each step of the Cocktail sort algorithm (see Appendix) as it sorts this sequence. Advanced Questions Question 5. A variant of the bubble sorting algorithm is the so-called odd-even transposition sort . Like bubble sort, this algorithm a total of n-1 passes through the array. Each pass consists of two phases: The first phase compares array[i] with array[i+1] and swaps them if necessary for all the odd values of of i.
    [Show full text]
  • 13 Basic Sorting Algorithms
    Concise Notes on Data Structures and Algorithms Basic Sorting Algorithms 13 Basic Sorting Algorithms 13.1 Introduction Sorting is one of the most fundamental and important data processing tasks. Sorting algorithm: An algorithm that rearranges records in lists so that they follow some well-defined ordering relation on values of keys in each record. An internal sorting algorithm works on lists in main memory, while an external sorting algorithm works on lists stored in files. Some sorting algorithms work much better as internal sorts than external sorts, but some work well in both contexts. A sorting algorithm is stable if it preserves the original order of records with equal keys. Many sorting algorithms have been invented; in this chapter we will consider the simplest sorting algorithms. In our discussion in this chapter, all measures of input size are the length of the sorted lists (arrays in the sample code), and the basic operation counted is comparison of list elements (also called keys). 13.2 Bubble Sort One of the oldest sorting algorithms is bubble sort. The idea behind it is to make repeated passes through the list from beginning to end, comparing adjacent elements and swapping any that are out of order. After the first pass, the largest element will have been moved to the end of the list; after the second pass, the second largest will have been moved to the penultimate position; and so forth. The idea is that large values “bubble up” to the top of the list on each pass. A Ruby implementation of bubble sort appears in Figure 1.
    [Show full text]
  • Sorting Partnership Unless You Sign Up! Brian Curless • Homework #5 Will Be Ready After Class, Spring 2008 Due in a Week
    Announcements (5/9/08) • Project 3 is now assigned. CSE 326: Data Structures • Partnerships due by 3pm – We will not assume you are in a Sorting partnership unless you sign up! Brian Curless • Homework #5 will be ready after class, Spring 2008 due in a week. • Reading for this lecture: Chapter 7. 2 Sorting Consistent Ordering • Input – an array A of data records • The comparison function must provide a – a key value in each data record consistent ordering on the set of possible keys – You can compare any two keys and get back an – a comparison function which imposes a indication of a < b, a > b, or a = b (trichotomy) consistent ordering on the keys – The comparison functions must be consistent • Output • If compare(a,b) says a<b, then compare(b,a) must say b>a • If says a=b, then must say b=a – reorganize the elements of A such that compare(a,b) compare(b,a) • If compare(a,b) says a=b, then equals(a,b) and equals(b,a) • For any i and j, if i < j then A[i] ≤ A[j] must say a=b 3 4 Why Sort? Space • How much space does the sorting • Allows binary search of an N-element algorithm require in order to sort the array in O(log N) time collection of items? • Allows O(1) time access to kth largest – Is copying needed? element in the array for any k • In-place sorting algorithms: no copying or • Sorting algorithms are among the most at most O(1) additional temp space.
    [Show full text]
  • Sorting Algorithm 1 Sorting Algorithm
    Sorting algorithm 1 Sorting algorithm In computer science, a sorting algorithm is an algorithm that puts elements of a list in a certain order. The most-used orders are numerical order and lexicographical order. Efficient sorting is important for optimizing the use of other algorithms (such as search and merge algorithms) that require sorted lists to work correctly; it is also often useful for canonicalizing data and for producing human-readable output. More formally, the output must satisfy two conditions: 1. The output is in nondecreasing order (each element is no smaller than the previous element according to the desired total order); 2. The output is a permutation, or reordering, of the input. Since the dawn of computing, the sorting problem has attracted a great deal of research, perhaps due to the complexity of solving it efficiently despite its simple, familiar statement. For example, bubble sort was analyzed as early as 1956.[1] Although many consider it a solved problem, useful new sorting algorithms are still being invented (for example, library sort was first published in 2004). Sorting algorithms are prevalent in introductory computer science classes, where the abundance of algorithms for the problem provides a gentle introduction to a variety of core algorithm concepts, such as big O notation, divide and conquer algorithms, data structures, randomized algorithms, best, worst and average case analysis, time-space tradeoffs, and lower bounds. Classification Sorting algorithms used in computer science are often classified by: • Computational complexity (worst, average and best behaviour) of element comparisons in terms of the size of the list . For typical sorting algorithms good behavior is and bad behavior is .
    [Show full text]
  • Sorting Algorithms
    Sorting Algorithms Chapter 12 Our first sort: Selection Sort • General Idea: min SORTED UNSORTED SORTED UNSORTED What is the invariant of this sort? Selection Sort • Let A be an array of n ints, and we wish to sort these keys in non-decreasing order. • Algorithm: for i = 0 to n-2 do find j, i < j < n-1, such that A[j] < A[k], k, i < k < n-1. swap A[j] with A[i] • This algorithm works in place, meaning it uses its own storage to perform the sort. Selection Sort Example 66 44 99 55 11 88 22 77 33 11 44 99 55 66 88 22 77 33 11 22 99 55 66 88 44 77 33 11 22 33 55 66 88 44 77 99 11 22 33 44 66 88 55 77 99 11 22 33 44 55 88 66 77 99 11 22 33 44 55 66 88 77 99 11 22 33 44 55 66 77 88 99 11 22 33 44 55 66 77 88 99 Selection Sort public static void sort (int[] data, int n) { int i,j,minLocation; for (i=0; i<=n-2; i++) { minLocation = i; for (j=i+1; j<=n-1; j++) if (data[j] < data[minLocation]) minLocation = j; swap(data, minLocation, i); } } Run time analysis • Worst Case: Search for 1st min: n-1 comparisons Search for 2nd min: n-2 comparisons ... Search for 2nd-to-last min: 1 comparison Total comparisons: (n-1) + (n-2) + ... + 1 = O(n2) • Average Case and Best Case: O(n2) also! (Why?) Selection Sort (another algorithm) public static void sort (int[] data, int n) { int i, j; for (i=0; i<=n-2; i++) for (j=i+1; j<=n-1; j++) if (data[j] < data[i]) swap(data, i, j); } Is this any better? Insertion Sort • General Idea: SORTED UNSORTED SORTED UNSORTED What is the invariant of this sort? Insertion Sort • Let A be an array of n ints, and we wish to sort these keys in non-decreasing order.
    [Show full text]
  • Sorting Networks
    Sorting Networks Uri Zwick Tel Aviv University May 2015 Comparators 푥 min(푥, 푦) 푦 max(푥, 푦) 푥 min(푥, 푦) 푦 max(푥, 푦) Can we use comparators to build efficient sorting networks? Comparator networks A comparator network is a network composed of comparators. There are 푛 input wires, each feeding a single comparator. Each output of a comparator is either an output wire, or feeds a single comparator. The network must be acyclic. Number of output wires must also be 푛. “Standard form” Exercise: Show that any comparator network is equivalent to a network in standard form. A simple sorting network 5 comparators 3 levels Insertion sort 푆표푟푡(푛) Selection/bubble sort 푆표푟푡(푛) Selection/bubble Sort 푛 푛−1 Size = Depth = 2푛 − 1 2 Exercise: Any sorting network that only compares 푛 푛−1 adjacent lines must be of size at least 2 Exercise: Prove that the network on the next slide, whose depth is 푛, is a sorting network Odd-Even Transposition Sort 푛 푛−1 Size = Depth = 푛 2 The 0-1 principle Theorem: If a network sort all 0-1 inputs, then it sort all inputs The 0-1 principle Lemma: Let 푓 be a monotone non-decreasing function. Then, if a network maps 푥1, 푥2, . , 푥푛 to 푦1, 푦2, . , 푦푛, then it maps 푓(푥1), 푓(푥2), . , 푓(푥푛) to 푓(푦1), 푓(푦2), . , 푓(푦푛) Proof: By induction on the number of comparisons using 푓 min 푎, 푏 = min(푓 푎 , 푓 푏 ) 푓 max 푎, 푏 = max(푓 푎 , 푓 푏 ) The 0-1 principle Proof: Suppose that a network is not a sorting network.
    [Show full text]
  • Sorting Algorithm 1 Sorting Algorithm
    Sorting algorithm 1 Sorting algorithm A sorting algorithm is an algorithm that puts elements of a list in a certain order. The most-used orders are numerical order and lexicographical order. Efficient sorting is important for optimizing the use of other algorithms (such as search and merge algorithms) which require input data to be in sorted lists; it is also often useful for canonicalizing data and for producing human-readable output. More formally, the output must satisfy two conditions: 1. The output is in nondecreasing order (each element is no smaller than the previous element according to the desired total order); 2. The output is a permutation (reordering) of the input. Since the dawn of computing, the sorting problem has attracted a great deal of research, perhaps due to the complexity of solving it efficiently despite its simple, familiar statement. For example, bubble sort was analyzed as early as 1956.[1] Although many consider it a solved problem, useful new sorting algorithms are still being invented (for example, library sort was first published in 2006). Sorting algorithms are prevalent in introductory computer science classes, where the abundance of algorithms for the problem provides a gentle introduction to a variety of core algorithm concepts, such as big O notation, divide and conquer algorithms, data structures, randomized algorithms, best, worst and average case analysis, time-space tradeoffs, and upper and lower bounds. Classification Sorting algorithms are often classified by: • Computational complexity (worst, average and best behavior) of element comparisons in terms of the size of the list (n). For typical serial sorting algorithms good behavior is O(n log n), with parallel sort in O(log2 n), and bad behavior is O(n2).
    [Show full text]
  • Searching and Sorting Charlie Li 2019-02-16 Content
    Searching and sorting Charlie Li 2019-02-16 Content • Searching • Linear Search • Binary Search • Ternary Search • Sorting • Selection Sort, Insertion Sort, Bubble Sort • Quick Sort, Merge Sort • Counting Sort, Radix Sort Searching • Usage • Generally, it is used to find any root or optimal value of some function f(x). • In particular, it can be used to locate a certain object or optimal value in an array Searching • 4 types of questions we can ask • For array, • Find the position of certain object in the array • Find the optimal (e.g. smallest or largest) element in the array • For function f(x), • Find the root of f(x) = y • Find the optimal (e.g. smallest or largest) point of f(x) Linear Search • Aka sequential search, dictionary search • The is one of the naïve ways to locate certain object or to find an optimal element in an array (and even for linked-list (appears in DS(I))) Linear Search • Example: • Find any 3 in the following array Index 0 1 2 3 4 5 Value 1 5 1 3 4 2 Not 3 Not 3 Not 3 Found Linear Search • Example: • Find any 0 in the following array Index 0 1 2 3 4 5 Value 1 5 1 3 4 2 Not 0 Not 0 Not 0 Not 0 Not 0 Not 0 Not Found Linear Search • For your reference, the code looks like this: • The idea is similar to find the optimal value. Linear Search • One can easily see that the above algorithm is always true without any restriction on the array a.
    [Show full text]
  • A Comparative Study of Sorting Algorithms Comb, Cocktail and Counting Sorting
    International Research Journal of Engineering and Technology (IRJET) e‐ISSN: 2395 ‐0056 Volume: 04 Issue: 01 | Jan ‐2017 www.irjet.net p‐ISSN: 2395‐0072 A comparative Study of Sorting Algorithms Comb, Cocktail and Counting Sorting Ahmad H. Elkahlout1, Ashraf Y. A. Maghari2. 1 Faculty of Information Technology, Islamic University of Gaza ‐ Palestine 2 Faculty of Information Technology, Islamic University of Gaza ‐ Palestine ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐***‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Abstract –The sorting algorithms problem is probably one java programming language, in which every algorithm sort of the most famous problems that used in abroad variety of the same set of random numeric data. Then the execution time during the sorting process is measured for each application. There are many techniques to solve the sorting algorithm. problem. In this paper, we conduct a comparative study to evaluate the performance of three algorithms; comb, cocktail The rest part of this paper is organized as follows. Section 2 and count sorting algorithms in terms of execution time. Java gives a background of the three algorithms; comb, count, and programing is used to implement the algorithms using cocktail algorithms. In section 3, related work is presented. numeric data on the same platform conditions. Among the Section4 comparison between the algorithms; section 5 three algorithms, we found out that the cocktail algorithm has discusses the results obtained from the evaluation of sorting the shortest execution time; while counting sort comes in the techniques considered. The paper is concluded in section 6. second order. Furthermore, Comb comes in the last order in term of execution time. Future effort will investigate the 2.
    [Show full text]
  • Parallel Techniques
    Algorithms and Applications Evaluating Algorithm Cost Processor-time product or cost of a computation can be defined as: Cost = execution time * total number of processors used Cost of a sequential computation simply its execution time, ts. Cost of a parallel computation is tp * n. Parallel execution time, tp, is given by ts/S(n). Cost-Optimal Parallel Algorithm One in which the cost to solve a problem on a multiprocessor is proportional to the cost (i.e., execution time) on a single processor system. Can be used to compare algorithms. Parallel Algorithm Time Complexity Can derive the time complexity of a parallel algorithm in a similar manner as for a sequential algorithm by counting the steps in the algorithm (worst case) . Following from the definition of cost-optimal algorithm But this does not take into account communication overhead. In textbook, calculated computation and communication separately. Sorting Algorithms - Potential Speedup O(nlogn) optimal for any sequential sorting algorithm without using special properties of the numbers. Best we can expect based upon a sequential sorting algorithm using n processors is Has been obtained but the constant hidden in the order notation extremely large. Also an algorithm exists for an n-processor hypercube using random operations. But, in general, a realistic O(logn) algorithm with n processors not be easy to achieve. Sorting Algorithms Reviewed Rank sort (to show that an non-optimal sequential algorithm may in fact be a good parallel algorithm) Compare and exchange operations (to show the effect of duplicated operations can lead to erroneous results) Bubble sort and odd-even transposition sort Two dimensional sorting - Shearsort (with use of transposition) Parallel Mergesort Parallel Quicksort Odd-even Mergesort Bitonic Mergesort Rank Sort The number of numbers that are smaller than each selected number is counted.
    [Show full text]