Q (Quaternary) Search Algorithm
|
|
- Ophelia Ford
- 5 years ago
- Views:
Transcription
1 Q (Quaternary) Search Algorithm Taranjit Khokhar Abstract In computer science, there are many ways to search the position of the required input value in an array. There are algorithms such as binary search and linear search. In this research paper, I will describe another new search algorithm which has been written to make the search even faster. This algorithm has been named as q (quaternary) search as it divides the array into four parts. After dividing the array, three elements are obtained which are compared to the specified input value. If the specified value matches any of the elements, the result is displayed. If not, then this process is repeated between any of the four parts of the array depending upon the specified value. This process is repeated until the result is found. There is also a disadvantage of this search algorithm as it requires the array to be sorted. Index Terms Search Algorithm I. INTRODUCTION The task of searching in an array is a very common one. For example, we search the name of a person in a telephone directory. We search the meaning of a word in a dictionary. In both cases, the list is a sorted one. It is sorted in an ascending order i.e. from a to z. Working of other Search Algorithms A search algorithm finds the position of a specified input value within an array. Linear Search: - Linear Search checks every element in the array sequentially until the desired element is found. Binary Search: - A binary search locates an item in a sorted array by repeatedly dividing the search interval in half. Working of Q Search A four search locates an item in a sorted array by repeatedly dividing the search interval into four equal parts. Comparison Table: LINEAR SEARCH Works only on sorted and unsorted items. Works with linked lists. Works with arrays. Less efficient. Number of comparisons is more. Detailed Working of Q Search Q SEARCH Works only on sorted items. Does not work with linked lists. Works with arrays. Very efficient. Number of comparisons is least. This algorithm works by dividing the array into four equal parts. Hence, three elements are obtained. The specified element is then compared to those three elements. If any of them match with the required element, the position of that element in the array is obtained. We need a general formula for dividing the array into four equal parts. The formula is obtained as follows: Aim: To find a general formula for dividing an array into four equal parts. Diagram: Proof: Let the largest and lowest element of an array be h and l respectively. Let the middle element be m. Let the element at 1/4 distance from l be a. Let the element at 1/4 distance from h be b. Now, m = (l+h)/2 a = (m+l)/2 = m/2 +l/2 a = [(l+h)/2]/2 + l/2 a = (l+h)/4 + l/2 IJIRT INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 17
2 a = (3l+h)/4 Similarly, b = (m+h)/2 = m/2 + h/2 b = [(h+l)/2]/2 + h/2 b = (h+l)/4 + h/2 b = (3h+l)/4 Inference: The formula for finding the element at 1/4 distance from l is (3l+h)/4 and the formula for finding the element at 1/4 distance from h is (3h+l)/4. We are going to use our derived result for our algorithm. For example In the following array, a[15]=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 Number to be searched (S) = 6. Largest value (h) = 16 Lowest value (l) = 1 Using our derived result, a = 4; m = 8; b = 12; S is not equal to a, m or m. Now, a < S < m Hence, the search is repeated between a and m, i.e. between the numbers 4 and 8. Therefore, h= a; l=m; Therefore, h = 8; l = 4; m = 6; a = 5; b = 7; S is not equal to a or b. But, m is equal to m. Hence, the position of that m is obtained. The number of times the loop executes is given by log 4 n where n is the number of elements of the array. This is because the array is divided into four equal parts every time the loop is executed. Working explained with steps 1. If the array bounds are improper, return error and terminate the process. 2. Else, compute the subscript of the element at 1/4 distance (a), the middle element (m) and the element at 3/4 distance (b). 3. If the target is equal to a or m or b, return the subscript of a or m or b accordingly. 4. Else if the target is less than a, go back to step 1 and search from first to a. 5. Else if the target is less than m, go back to step 1 and search from a to m 6. Else if the target is less than b, go back to step 1 and search from m to b. 7. Else go back to step 1 and search from b to last. Expressing the above steps in code: int search (int a[], int find, int l, int h) int a,m,b; /* Step 1*/ if((find<l) (find>h)) return( error ); while(l<=h) /* Step 2 */ a=((3*l) + h)/4; m=(h + l)/2; b=((3*h) + l)/4; /* Step 3 */ if (a[a]==find) IJIRT INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 18
3 return a; if(a[m]==find) return m; if(a[b]==find) return b; /* Step 4 */ if(find<a[a]) h=a-1; /* Step 5 */ if(find<a[m]) l=a+1; h=m-1; /* Step 6 */ if(find<a[b]) l=m+1; h=b-1; /* Step 7 */ l=b+1 ; Proof that q search is faster than binary search (when not considering the time taken by if- statement) It is nearly impossible to consider the time taken by if statements. R.H.S = O(log 2n ) L.H.S = O(log 4n ) Aim: To prove that L.H.S > R.H.S for any positive value of n. Proof: R.H.S Let O(log 2 n ) = x O(n) = 2 x L.H.S Let O(log 4 n ) = y O(n) = 4 x 4 x > 2 x for any positive value of x. Inference: Hence, it can be seen that the number of times the loop runs on q search is less than binary search. Though q search has more if- statements, the number of times the loop will run is nearly half that of binary search. Search loop comparison: As it can be seen, the number of times a loop runs for a particular value in binary search is double the number of times the loop runs on Q search. Where can Q search be used? Q search can be used when you have a lot of data. It can also be used when you need to save up space. For example, if you want to store 500, bit integers, you can store the integers in a sorted array of 2,000,000 bytes. However, if you want to store the values in a B-tree, it will take up at least 60,000,000 bytes. Hence, it saves up a lot of space compared to other alternatives. IJIRT INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 19
4 C++ code for Q Search and comparison with Binary Search: Q search #include<iostream.h> #include<conio.h> void main() clrscr(); int f, n, a[10000]; cout<<"enter THE NUMBER OF ELEMENTS"; cin>>n; cout<<"enter THE ELEMENTS OF THE ARRAY"; for(int m=0;m<n;m++) int h = n-1; int l = 0; cin>>a[m]; cout<<"enter NUMBER TO BE SEARCHED"; cin>>f; while(h>=l) int j = ((3*l)+h)/4; int m = (h+l)/2; int k = ((3*l)+h)/4; if(a[j]==f) cout<<a[j]; if(a[m]==f) Binary Search #include<iostream.h> #include<conio.h> void main() clrscr(); int n, a[10000]; cout<<"enter THE NUMBER OF ELEMENTS"; cin>>n; cout<<"enter THE ELEMENTS OF THE ARRAY"; for(int m=0;m<n;m++) int f; int h = n-1; int l = 0; cin>>a[m]; cout<<"enter NUMBER TO BE SEARCHED"; cin>>f; while(h>=l) int m = (h+l)/2; if(a[m]==f) cout<<a[m]; if(f<a[m]) IJIRT INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 20
5 getch(); cout<<a[m]; if(a[k]==f) cout<<a[k]; if(f<a[j]) h=j-1; if(f<a[m]) l=j+1; h=m-1; if(f<a[k]) l=m+1; h=k-1; l=k+1; getch(); h=m-1; l=m+1; IJIRT INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 21
6 II. CONCLUSION: Q search is a very efficient search algorithm. It can be used in many real life applications. It requires the data to be sorted in either ascending or descending order. It can be used to for very large amounts of data. Q search is more effective than binary search in most cases. It also saves up a lot of space compared to a binary tree. The basic idea behind this search algorithm is that it repeatedly divides the array into four equal parts and searches for the required number. REFERENCES [1] _PAPER.pdf [2] [3] [4] orithm IJIRT INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 22
CSE202- Lec#6. (Operations on CSE202 C++ Programming
Arrays CSE202- Lec#6 (Operations on Arrays) Outline To declare an array To initialize an array Operations on array Introduction Arrays Collection of related data items of same data type. Static entity
More informationDownloaded from
Unit-II Data Structure Arrays, Stacks, Queues And Linked List Chapter: 06 In Computer Science, a data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently.
More informationChapter4: Data Structures. Data: It is a collection of raw facts that has implicit meaning.
Chapter4: s Data: It is a collection of raw facts that has implicit meaning. Data may be single valued like ID, or multi valued like address. Information: It is the processed data having explicit meaning.
More informationCSE101-lec#19. Array searching and sorting techniques. Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU. LPU CSE101 C Programming
CSE101-lec#19 Array searching and sorting techniques Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU Outline Introduction Linear search Binary search Bubble sort Introduction The process of finding
More informationSorting Algorithms. Selection Sort Algorithm
Sorting Algorithms 015-016 Kirkuk Common problem: sort a list of values, starting from lowest to highest. List of exam scores, Words of dictionary in alphabetical order, Students names listed alphabetically,
More informationAE52/AC52/AT52 C & Data Structures JUNE 2014
Q.2 a. Write a program to add two numbers using a temporary variable. #include #include int main () int num1, num2; clrscr (); printf( \n Enter the first number : ); scanf ( %d, &num1);
More information8.1. Chapter 8: Introduction to Search Algorithms. Linear Search. Linear Search. Linear Search - Example 8/23/2014. Introduction to Search Algorithms
Chapter 8: Searching and Sorting Arrays 8.1 Introduction to Search Algorithms Introduction to Search Algorithms Search: locate an item in a list of information Two algorithms we will examine: Linear search
More informationDELHI PUBLIC SCHOOL TAPI
Loops Chapter-1 There may be a situation, when you need to execute a block of code several number of times. In general, statements are executed sequentially: The first statement in a function is executed
More information4.1 COMPUTATIONAL THINKING AND PROBLEM-SOLVING
4.1 COMPUTATIONAL THINKING AND PROBLEM-SOLVING 4.1.2 ALGORITHMS ALGORITHM An Algorithm is a procedure or formula for solving a problem. It is a step-by-step set of operations to be performed. It is almost
More informationSorting Algorithms. Array Data is being arranged in ascending order using the bubble sort algorithm. #1 #2 #3 #4 #5 #6 #7
Sorting Algorithms One of the fundamental problems of computer science is ordering a list of items. There s a plethora of solutions to this problem, known as sorting algorithms. Some sorting algorithms
More informationCS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 06 / 11 / 2015 Instructor: Michael Eckmann Today s Topics Comments and/or Questions? Sorting Searching Michael Eckmann - Skidmore College - CS 106 - Summer 2015
More informationQuestion 7.11 Show how heapsort processes the input:
Question 7.11 Show how heapsort processes the input: 142, 543, 123, 65, 453, 879, 572, 434, 111, 242, 811, 102. Solution. Step 1 Build the heap. 1.1 Place all the data into a complete binary tree in the
More informationLECTURE 08 SEARCHING AND SORTING ARRAYS
PowerPoint Slides adapted from *Starting Out with C++: From Control Structures through Objects, 7/E* by *Tony Gaddis* Copyright 2012 Pearson Education Inc. COMPUTER PROGRAMMING LECTURE 08 SEARCHING AND
More information4. SEARCHING AND SORTING LINEAR SEARCH
4. SEARCHING AND SORTING SEARCHING Searching and sorting are fundamental operations in computer science. Searching refers to the operation of finding the location of a given item in a collection of items.
More informationArrays. Elementary Data Representation Different Data Structure Operation on Data Structure Arrays
Arrays Elementary Data Representation Different Data Structure Operation on Data Structure Arrays Elementary Data Representation Data can be in the form of raw data, data items and data structure. Raw
More informationECE 122. Engineering Problem Solving Using Java
ECE 122 Engineering Problem Solving Using Java Lecture 27 Linear and Binary Search Overview Problem: How can I efficiently locate data within a data structure Searching for data is a fundamental function
More informationC/C++ Programming Lecture 18 Name:
. The following is the textbook's code for a linear search on an unsorted array. //***************************************************************** // The searchlist function performs a linear search
More informationIntroduction to Computer Science Midterm 3 Fall, Points
Introduction to Computer Science Fall, 2001 100 Points Notes 1. Tear off this sheet and use it to keep your answers covered at all times. 2. Turn the exam over and write your name next to the staple. Do
More informationSearching, Sorting. Arizona State University 1
Searching, Sorting CSE100 Principles of Programming with C++, Fall 2018 (based off Chapter 9 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State
More informationData Structures. Chapter 04. 3/10/2016 Md. Golam Moazzam, Dept. of CSE, JU
Data Structures Chapter 04 1 Linear Array A linear array is a list of finite number N of homogeneous data elements such that: The elements of the array are referenced respectively by an index set consisting
More informationC++ is case sensitive language, meaning that the variable first_value, First_Value or FIRST_VALUE will be treated as different.
C++ Character Set a-z, A-Z, 0-9, and underscore ( _ ) C++ is case sensitive language, meaning that the variable first_value, First_Value or FIRST_VALUE will be treated as different. Identifier and Keywords:
More informationAn array is a collection of similar elements that is all the elements in an array should have same data type. This means that an array can store
An array is a collection of similar elements that is all the elements in an array should have same data type. This means that an array can store either all integers, all floating point numbers, all characters,
More information2016 COMPUTER SCIENCE
Total number of printed pages: 5 Total marks : 70 2016 COMPUTER SCIENCE Time : 3 hours General instructions: i) Approximately 15 minutes is allotted to read the question paper and revise the answers. ii)
More informationIntroduction. two of the most fundamental concepts in computer science are, given an array of values:
Searching Class 28 Introduction two of the most fundamental concepts in computer science are, given an array of values: search through the values to see if a specific value is present and, if so, where
More informationTopics Applications Most Common Methods Serial Search Binary Search Search by Hashing (next lecture) Run-Time Analysis Average-time analysis Time anal
CSC212 Data Structure t Lecture 18 Searching Instructor: George Wolberg Department of Computer Science City College of New York @ George Wolberg, 2016 1 Topics Applications Most Common Methods Serial Search
More informationPriority Queues, Binary Heaps, and Heapsort
Priority Queues, Binary eaps, and eapsort Learning Goals: Provide examples of appropriate applications for priority queues and heaps. Implement and manipulate a heap using an array as the underlying data
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 10 Recursion and Search MOUNA KACEM mouna@cs.wisc.edu Spring 2019 Recursion: General Overview 2 Recursion in Algorithms Recursion is the use of recursive algorithms to
More informationBinary Search and Worst-Case Analysis
Department of Computer Science and Engineering Chinese University of Hong Kong A significant part of computer science is devoted to understanding the power of the RAM model in solving specific problems.
More informationTable ADT and Sorting. Algorithm topics continuing (or reviewing?) CS 24 curriculum
Table ADT and Sorting Algorithm topics continuing (or reviewing?) CS 24 curriculum A table ADT (a.k.a. Dictionary, Map) Table public interface: // Put information in the table, and a unique key to identify
More informationSearch algorithms and informal introduction to asymptotic complexity
Search algorithms and informal introduction to asymptotic complexity Organization Searching in arrays Linear search Generic Programming Binary search Asymptotic complexity of algorithms Informal, for now
More informationSorting. Task Description. Selection Sort. Should we worry about speed?
Sorting Should we worry about speed? Task Description We have an array of n values in any order We need to have the array sorted in ascending or descending order of values 2 Selection Sort Select the smallest
More informationRecursion: The Beginning
Department of Computer Science and Engineering Chinese University of Hong Kong This lecture will introduce a useful technique called recursion. If used judiciously, this technique often leads to elegant
More informationHigh Institute of Computer Science & Information Technology Term : 1 st. El-Shorouk Academy Acad. Year : 2013 / Year : 2 nd
El-Shorouk Academy Acad. Year : 2013 / 2014 High Institute of Computer Science & Information Technology Term : 1 st Year : 2 nd Computer Science Department Object Oriented Programming Section (1) Arrays
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 10 Recursion and Search MOUNA KACEM Recursion: General Overview 2 Recursion in Algorithms Recursion is the use of recursive algorithms to solve a problem A recursive algorithm
More informationDATA STRUCTURES/UNIT 3
UNIT III SORTING AND SEARCHING 9 General Background Exchange sorts Selection and Tree Sorting Insertion Sorts Merge and Radix Sorts Basic Search Techniques Tree Searching General Search Trees- Hashing.
More informationData Structures. Alice E. Fischer. Lecture 4, Fall Alice E. Fischer Data Structures L4... 1/19 Lecture 4, Fall / 19
Data Structures Alice E. Fischer Lecture 4, Fall 2018 Alice E. Fischer Data Structures L4... 1/19 Lecture 4, Fall 2018 1 / 19 Outline 1 Ordered Lists 2 Sorted Lists Tail Pointers 3 Doubly Linked Lists
More informationChapter 8 Search and Sort
Chapter 8 Search and Sort Goals This chapter begins by showing two algorithms used with arrays: selection sort and binary search. After studying this chapter, you will be able to understand how binary
More informationPRAM Divide and Conquer Algorithms
PRAM Divide and Conquer Algorithms (Chapter Five) Introduction: Really three fundamental operations: Divide is the partitioning process Conquer the the process of (eventually) solving the eventual base
More informationRecursion: The Beginning
Yufei Tao ITEE University of Queensland This lecture is the inception of a powerful technique called recursion. If used judiciously, this technique can simplify the design of an algorithm significantly,
More informationParallel Sorting. Sathish Vadhiyar
Parallel Sorting Sathish Vadhiyar Parallel Sorting Problem The input sequence of size N is distributed across P processors The output is such that elements in each processor P i is sorted elements in P
More informationPlan of the lecture. Quick-Sort. Partition of lists (or using extra workspace) Quick-Sort ( 10.2) Quick-Sort Tree. Partitioning arrays
Plan of the lecture Quick-sort Lower bounds on comparison sorting Correctness of programs (loop invariants) Quick-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 Lecture 16 1 Lecture 16 2 Quick-Sort (
More informationChapter 10. Sorting and Searching Algorithms. Fall 2017 CISC2200 Yanjun Li 1. Sorting. Given a set (container) of n elements
Chapter Sorting and Searching Algorithms Fall 2017 CISC2200 Yanjun Li 1 Sorting Given a set (container) of n elements Eg array, set of words, etc Suppose there is an order relation that can be set across
More informationCSE 373 Autumn 2010: Midterm #1 (closed book, closed notes, NO calculators allowed)
Name: Email address: CSE 373 Autumn 2010: Midterm #1 (closed book, closed notes, NO calculators allowed) Instructions: Read the directions for each question carefully before answering. We may give partial
More informationTransform & Conquer. Presorting
Transform & Conquer Definition Transform & Conquer is a general algorithm design technique which works in two stages. STAGE : (Transformation stage): The problem s instance is modified, more amenable to
More informationComputer Science 4U Unit 1. Programming Concepts and Skills Algorithms
Computer Science 4U Unit 1 Programming Concepts and Skills Algorithms Algorithm In mathematics and computer science, an algorithm is a step-by-step procedure for calculations. Algorithms are used for calculation,
More informationInheritance: Single level inheritance:
Inheritance: The mechanism of deriving a new class from old one is called inheritance. The old class is referred to as the base class or parent class and the new class is called the derived class or child
More informationOperators and Expressions in C & C++ Mahesh Jangid Assistant Professor Manipal University, Jaipur
Operators and Expressions in C & C++ Mahesh Jangid Assistant Professor Manipal University, Jaipur Operators and Expressions 8/24/2012 Dept of CS&E 2 Arithmetic operators Relational operators Logical operators
More informationPremaster Course Algorithms 1 Chapter 2: Heapsort and Quicksort
Premaster Course Algorithms 1 Chapter 2: Heapsort and Quicksort Christian Scheideler SS 2018 16.04.2018 Chapter 2 1 Heapsort Motivation: Consider the following sorting algorithm Input: Array A Output:
More informationSearching. 11. Searching
Searching In many applications it is necessary to search a list of data elements for one (or more) that matches some specific criterion. For example: - find the largest integer in a list of test scores
More informationHere we will only consider the problem of searching among the elements of an array. Intro Programming in C++
S 10 Fall 00 May 1, 006 Searching In many applications it is necessary to search a list of data elements for one (or more) that matches some specific criterion. For example: - find the largest integer
More informationHigher National Diploma in Information Technology. First Year Second Semester Examination IT 2003-Data Structure and Algorithm.
Higher National Diploma in Information Technology First Year Second Semester Examination-2013 IT 2003-Data Structure and Algorithm Answer Guide (01) I)What is Data structure A data structure is an arrangement
More informationModule 5: Hashing. CS Data Structures and Data Management. Reza Dorrigiv, Daniel Roche. School of Computer Science, University of Waterloo
Module 5: Hashing CS 240 - Data Structures and Data Management Reza Dorrigiv, Daniel Roche School of Computer Science, University of Waterloo Winter 2010 Reza Dorrigiv, Daniel Roche (CS, UW) CS240 - Module
More informationLecture 6: Analysis of Algorithms (CS )
Lecture 6: Analysis of Algorithms (CS583-002) Amarda Shehu October 08, 2014 1 Outline of Today s Class 2 Traversals Querying Insertion and Deletion Sorting with BSTs 3 Red-black Trees Height of a Red-black
More informationOperations on Heap Tree The major operations required to be performed on a heap tree are Insertion, Deletion, and Merging.
Priority Queue, Heap and Heap Sort In this time, we will study Priority queue, heap and heap sort. Heap is a data structure, which permits one to insert elements into a set and also to find the largest
More informationMulti-Way Search Trees
Multi-Way Search Trees Manolis Koubarakis 1 Multi-Way Search Trees Multi-way trees are trees such that each internal node can have many children. Let us assume that the entries we store in a search tree
More informationSORTING AND SEARCHING
SORTING AND SEARCHING Today Last time we considered a simple approach to sorting a list of objects. This lecture will look at another approach to sorting. We will also consider how one searches through
More informationHashing. 1. Introduction. 2. Direct-address tables. CmSc 250 Introduction to Algorithms
Hashing CmSc 250 Introduction to Algorithms 1. Introduction Hashing is a method of storing elements in a table in a way that reduces the time for search. Elements are assumed to be records with several
More informationBinary Search and Worst-Case Analysis
Yufei Tao ITEE University of Queensland A significant part of computer science is devoted to understanding the power of the RAM model in solving specific problems. Every time we discuss a problem in this
More informationMulti-Way Search Trees
Multi-Way Search Trees Manolis Koubarakis 1 Multi-Way Search Trees Multi-way trees are trees such that each internal node can have many children. Let us assume that the entries we store in a search tree
More informationCS261 Data Structures. Ordered Array Dynamic Array Implementation
CS261 Data Structures Ordered Array Dynamic Array Implementation Recall Arrays Operations Add O(1+) for dynamic array Contains O(n) Remove O(n) What if our application needs to repeatedly call Contains
More information(b) int count = 0; int i = 1; while (i<m) { for (int j=i; j<n; j++) { count = count + 1; i = i + 1; O(M + N 2 ) (c) int count = 0; int i,j,k; for (i=1
CPS 100 Exam 2 Solutions Spring 199 Dr Rodger 1 (3 pts) A virtual function in C++ is bound dynamically or statically? dynamic 2 (3 pts) When does one use a class template in C++? Templates are used to
More informationCSE 373 Spring 2010: Midterm #1 (closed book, closed notes, NO calculators allowed)
Name: Email address: CSE 373 Spring 2010: Midterm #1 (closed book, closed notes, NO calculators allowed) Instructions: Read the directions for each question carefully before answering. We may give partial
More informationPriority Queue: Heap Structures
Priority Queue: Heap Structures Definition: A max-heap (min-heap) is a complete BT with the property that the value (priority) of each node is at least as large (small) as the values at its children (if
More informationAnswers. 1. (A) Attempt any five : 20 Marks
Important Instructions to examiners: 1) The answers should be examined by key words and not as word-to-word as given in the model answer scheme. 2) The model answer and the answer written by candidate
More informationComputers in Engineering COMP 208. Where s Waldo? Linear Search. Searching and Sorting Michael A. Hawker
Computers in Engineering COMP 208 Searching and Sorting Michael A. Hawker Where s Waldo? A common use for computers is to search for the whereabouts of a specific item in a list The most straightforward
More information2/14/13. Outline. Part 5. Computational Complexity (2) Examples. (revisit) Properties of Growth-rate functions(1/3)
Outline Part 5. Computational Complexity (2) Complexity of Algorithms Efficiency of Searching Algorithms Sorting Algorithms and Their Efficiencies CS 200 Algorithms and Data Structures 1 2 (revisit) Properties
More informationChapter-11 POINTERS. Important 3 Marks. Introduction: Memory Utilization of Pointer: Pointer:
Chapter-11 POINTERS Introduction: Pointers are a powerful concept in C++ and have the following advantages. i. It is possible to write efficient programs. ii. Memory is utilized properly. iii. Dynamically
More informationBinary Heaps in Dynamic Arrays
Yufei Tao ITEE University of Queensland We have already learned that the binary heap serves as an efficient implementation of a priority queue. Our previous discussion was based on pointers (for getting
More informationHow to declare an array in C?
Introduction An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type. Representation of a large number of homogeneous values.
More informationSorting. Bubble Sort. Pseudo Code for Bubble Sorting: Sorting is ordering a list of elements.
Sorting Sorting is ordering a list of elements. Types of sorting: There are many types of algorithms exist based on the following criteria: Based on Complexity Based on Memory usage (Internal & External
More informationBRAIN INTERNATIONAL SCHOOL. Term-I Class XI Sub: Computer Science Revision Worksheet
BRAIN INTERNATIONAL SCHOOL Term-I Class XI 2018-19 Sub: Computer Science Revision Worksheet Chapter-1. Computer Overview 1. Which electronic device invention brought revolution in earlier computers? 2.
More informationCHAPTER 9 FLOW OF CONTROL
CHAPTER 9 FLOW OF CONTROL FLOW CONTROL In a program statement may be executed sequentially, selectively or iteratively. Every program language provides constructs to support sequence, selection or iteration.
More informationBinary Search Trees. Contents. Steven J. Zeil. July 11, Definition: Binary Search Trees The Binary Search Tree ADT...
Steven J. Zeil July 11, 2013 Contents 1 Definition: Binary Search Trees 2 1.1 The Binary Search Tree ADT.................................................... 3 2 Implementing Binary Search Trees 7 2.1 Searching
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 9 (Part II) Recursion MOUNA KACEM Recursion: General Overview 2 Recursion in Algorithms Recursion is the use of recursive algorithms to solve a problem A recursive algorithm
More informationData Structures and Algorithms for Engineers
0-630 Data Structures and Algorithms for Engineers David Vernon Carnegie Mellon University Africa vernon@cmu.edu www.vernon.eu Data Structures and Algorithms for Engineers 1 Carnegie Mellon University
More information8. Binary Search Tree
8 Binary Search Tree Searching Basic Search Sequential Search : Unordered Lists Binary Search : Ordered Lists Tree Search Binary Search Tree Balanced Search Trees (Skipped) Sequential Search int Seq-Search
More informationLecture 6 Sorting and Searching
Lecture 6 Sorting and Searching Sorting takes an unordered collection and makes it an ordered one. 1 2 3 4 5 6 77 42 35 12 101 5 1 2 3 4 5 6 5 12 35 42 77 101 There are many algorithms for sorting a list
More information9/10/12. Outline. Part 5. Computational Complexity (2) Examples. (revisit) Properties of Growth-rate functions(1/3)
Outline Part 5. Computational Complexity (2) Complexity of Algorithms Efficiency of Searching Algorithms Sorting Algorithms and Their Efficiencies CS 200 Algorithms and Data Structures 1 2 (revisit) Properties
More informationIntroduction to Arrays
Introduction to Arrays One Dimensional Array. Two Dimensional Array. Inserting Elements in Array. Reading Elements from an Array. Searching in Array. Sorting of an Array. Merging of 2 Arrays. What is an
More informationChapter-13 USER DEFINED FUNCTIONS
Chapter-13 USER DEFINED FUNCTIONS Definition: User-defined function is a function defined by the user to solve his/her problem. Such a function can be called (or invoked) from anywhere and any number of
More informationAlgorithm Analysis. Performance Factors
Algorithm Analysis How can we demonstrate that one algorithm is superior to another without being misled by any of the following problems: Special cases Every algorithm has certain inputs that allow it
More informationPrinciples of Programming. Chapter 6: Arrays
Chapter 6: Arrays In this chapter, you will learn about Introduction to Array Array declaration Array initialization Assigning values to array elements Reading values from array elements Simple Searching
More informationData Structure. IBPS SO (IT- Officer) Exam 2017
Data Structure IBPS SO (IT- Officer) Exam 2017 Data Structure: In computer science, a data structure is a way of storing and organizing data in a computer s memory so that it can be used efficiently. Data
More informationPriority Queues and Heaps. Heaps of fun, for everyone!
Priority Queues and Heaps Heaps of fun, for everyone! Learning Goals After this unit, you should be able to... Provide examples of appropriate applications for priority queues and heaps Manipulate data
More informationCSE 332 Spring 2013: Midterm Exam (closed book, closed notes, no calculators)
Name: Email address: Quiz Section: CSE 332 Spring 2013: Midterm Exam (closed book, closed notes, no calculators) Instructions: Read the directions for each question carefully before answering. We will
More informationCOMP171. Hashing.
COMP171 Hashing Hashing 2 Hashing Again, a (dynamic) set of elements in which we do search, insert, and delete Linear ones: lists, stacks, queues, Nonlinear ones: trees, graphs (relations between elements
More information9. Heap : Priority Queue
9. Heap : Priority Queue Where We Are? Array Linked list Stack Queue Tree Binary Tree Heap Binary Search Tree Priority Queue Queue Queue operation is based on the order of arrivals of elements FIFO(First-In
More informationSearching & Sorting in Java Shell Sort
Although our previous sorting algorithms (insertion, selection, bubble) work well enough for short lists, they tend to slow down drastically with long lists. This is due to the large number of comparisons
More informationCSCI 136 Data Structures & Advanced Programming. Lecture 9 Fall 2018 Instructors: Bills
CSCI 136 Data Structures & Advanced Programming Lecture 9 Fall 2018 Instructors: Bills Administrative Details Remember: First Problem Set is online Due at beginning of class on Friday Lab 3 Today! You
More informationSample Paper Class XI Subject Computer Sience UNIT TEST II
Sample Paper Class XI Subject Computer Sience UNIT TEST II (General OOP concept, Getting Started With C++, Data Handling and Programming Paradigm) TIME: 1.30 Hrs Max Marks: 40 ALL QUESTIONS ARE COMPULSURY.
More informationDO NOT. UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N.
CS61B Fall 2013 UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division Test #2 Solutions DO NOT P. N. Hilfinger REPRODUCE 1 Test #2 Solution 2 Problems
More informationESc101 : Fundamental of Computing
ESc101 : Fundamental of Computing I Semester 2008-09 Lecture 37 Analyzing the efficiency of algorithms. Algorithms compared Sequential Search and Binary search GCD fast and GCD slow Merge Sort and Selection
More informationAshish Gupta, Data JUET, Guna
Categories of data structures Data structures are categories in two classes 1. Linear data structure: - organized into sequential fashion - elements are attached one after another - easy to implement because
More informationThe Limits of Sorting Divide-and-Conquer Comparison Sorts II
The Limits of Sorting Divide-and-Conquer Comparison Sorts II CS 311 Data Structures and Algorithms Lecture Slides Monday, October 12, 2009 Glenn G. Chappell Department of Computer Science University of
More informationChapter 10 - Notes Applications of Arrays
Chapter - Notes Applications of Arrays I. List Processing A. Definition: List - A set of values of the same data type. B. Lists and Arrays 1. A convenient way to store a list is in an array, probably a
More informationHeaps. Heaps. A heap is a complete binary tree.
A heap is a complete binary tree. 1 A max-heap is a complete binary tree in which the value in each internal node is greater than or equal to the values in the children of that node. A min-heap is defined
More informationPlanar Point Location
C.S. 252 Prof. Roberto Tamassia Computational Geometry Sem. II, 1992 1993 Lecture 04 Date: February 15, 1993 Scribe: John Bazik Planar Point Location 1 Introduction In range searching, a set of values,
More information16. Searching and Sorting
16. Searching and Sorting Java Fall 2009 Instructor: Dr. Masoud Yaghini Searching and Sorting Outline Searching Arrays Sorting Arrays Arrays Class References Searching Arrays Searching Arrays Searching
More informationCS 311 Data Structures and Algorithms, Spring 2009 Midterm Exam Solutions. The Midterm Exam was given in class on Wednesday, March 18, 2009.
CS 311 Data Structures and Algorithms, Spring 2009 Midterm Exam Solutions The Midterm Exam was given in class on Wednesday, March 18, 2009. 1. [4 pts] Parameter Passing in C++. In the table below, the
More informationChapter 8 Algorithms 1
Chapter 8 Algorithms 1 Objectives After studying this chapter, the student should be able to: Define an algorithm and relate it to problem solving. Define three construct and describe their use in algorithms.
More information