GRID SEARCHING Novel way of Searching 2D Array
|
|
|
- Allyson Mason
- 9 years ago
- Views:
Transcription
1 GRID SEARCHING Novel way of Searching 2D Array Rehan Guha Institute of Engineering & Management Kolkata, India Abstract: Linear/Sequential searching is the basic search algorithm used in data structures. Linear search is used to find a particular element in a 2D array. It is not compulsory to arrange an array in any order (Ascending or Descending) as in case of 2D binary search. In this paper, I present a unique searching algorithm named Grid Search, which helps to search an unsorted 2D Array/Matrix with least time complexity and iteration. We also have compared the Grid searching algorithm with Linear Search Algorithm. We used C++ for implementation and analysis of CPU time taken by both the algorithms. Results have shown that Grid Searching Algorithm is working well for all input values and it takes lesser time than Sequential Searching in all aspects. Keywords: Matrix Searching algorithms; 2D Array Searching algorithms; 2D Array Linear Searching; 2D Array Grid Searching; Complexity Analysis; Algorithms; Searching Algorithms; 1. INTRODUCTION 2D Array or Matrix searching algorithm is a widely used and known searching algorithm. Though it is a primitive and basic searching technique, but it is widely used in different fields even today. Fields include Bio-medical image processing, Rasterization techniques, Electrooptical displays, Pixel tracing and many more. In this paper I have developed a new searching technique named Grid Searching, based on the existing limitations of the 2D array linear/sequential search algorithm. In 2D array searching an iterator 1 traverses sequentially from left to right (row major) or top to down (column major). When it encounters an element which is equal to the key 2 the search stops and the index of the element is returned, but if the key is not present in the 2D array the function will return 0, implying that the key is not found. Sequential search or linear search is the basic search algorithm used in data structures for 2D array[1] with unsorted data. 2. RELATED WORK Linear search is used to find a particular element in an array. It is not compulsory to arrange an array in any order 3 as in the case of binary search. Linear search starts by sequentially scanning the elements in the 2D array (Row major wise or Column major wise) and if the element has been found, it will display the particular element s index value in the 2D array/matrix, else it will display not found[2][3]. If we declare a 2D array of order (n X n) i.e. size of array is n 2 then we initialize the array with the value (either static or dynamic declaration of values)[4]. In that if we mention the particular element to be identified, the linear search will start to search the array from the index 0, 0. If the value is not found, then the iterator will increment the index value by 1 in the column/row index becoming (0, 1) / (1, 0) and then it will check the element in that index again. This process continues till the element has been identified in the 2D Array/Matrix. 1 It is a variable which acts as an counter variable and acts as an index for 2D array/matrix 2 The element which is to be searched in the 2D array/matrix 3 Ascending, Descending or any other sequence/series 26
2 Algorithm(s): Input: LINEAR_SEARCH (M, NUM, n) 2D array/matrix M NUM is the key which is to be searched in M n is the order of the 2D array/matrix M (n X n) i & j are the iterators and works as index of the 2D array/matrix. Pseudo Code: where, n= 1,2,3,4,5,6,7 LINEAR_SEARCH (M, NUM, n) 1. Flag 0 2. for i 0 to n-1 3. for j 0 to n-1 4. if (M[i][j] == NUM) then 5. Flag 1 6. return (i, j) 7. end if 8. next j 9. next i 10. if (Flag == 0) then 11. return end if Algorithm(s): Input: GRID_SEARCH(M, n, NUM), CHECK (M, n, i, j, NUM), RANGE (n) 2D array/matrix M NUM is the key which is to be searched in M n is the order of the 2D array/matrix M (n X n) i & j are the iterators and works as index of the 2D array/matrix. Pseudo Code: where, n= 1,2,3,4,5,6,7 RANGE (n) 1. if (n MOD 3 == 1) then 2. T (n+2) / 3 3. else if (n MOD 3 == 2) then 4. T (n+1) / 3 5. else 6. T (n) / 3 7. end if 8. return ( T * T ) Flag Checks whether the element is present or not. If function LINEAR_SEARCH finds a match with the key then it returns the index of the element(s) (there might be multiple match of elements in the 2D array/matrix). Else it returns 0 which signifies element not found. CHECK (M, n, i, j, NUM) 1. if ( ((i>=0) AND (i<n)) AND ((j>=0) AND (j<n)) AND M[i][j] == NUM ) then 2. return 1 3. end if 4. return 0 3. MODIFIED ALGORITHM (GRID SEARCHING) If we declare and initialize a 2D array of order (n X n) i.e. size of the array is n 2 and if we mention the particular element to be identified, then the grid search will start searching the array from the index 1, 1. Now considering the index, it will search its boundary like a Grid. If the element is not found in the boundary then it will search the next set of Grids according to the order of matrix. This process continues till the element has been identified. GRID_SEARCH (M, n, NUM) 1. Flag 0 2. T RANGE(n) 3. for i 1 to T 4. for j 1 to T 5. if (CHECK(M, n, i-1, j-1, 6. Flag 1 7. return(i-1, j-1) 8. end if 27
3 9. if (CHECK(M, n, i-1, j, 10. Flag return(i-1, j) 12. end if 13. if (CHECK(M, n, i, j-1, 14. Flag return(i, j-1) 16. end if 17. if (CHECK(M, n, i-1, j+1, 18. Flag return end if 21. if (CHECK(M, n, i, j, NUM)) then 22. Flag return(i, j) 24. end if 25. if (CHECK(M, n, i, j+1, 26. Flag return (i, j+1) 28. End if 29. if (CHECK(M, n, i+1, j-1, 30. Flag return(i+1, j-1) 32. End if 33. if (CHECK(M, n, i+1, j, 34. Flag return(i+1, j) 36. end if 37. if (CHECK(M, n, i+1, j+1, 38. Flag return(i+1, j+1) 40. end if 41. next (j+3) 42. next (i+3) 43. if (Flag == 0) then 44. return end if Example: If array M has 1 element only i.e. order of the array is 1(i.e. 1 X 1) and now if we search the array and the element is found then the total number of searches will equal to 1. But if the order of the nested If-Else condition is changed then the total number searches will be greater than 1 thus in turn increases the complexity of the algorithm. Flag Checks whether the element is present or not. T Holds the returned value from the function RANGE(n). If function GRID_SEARCH finds a match with the key then it returns the index of the element(s) (there might be multiple match of elements in the 2D Array/Matrix). Else it returns 0 which signifies element is not found. 4. PROOF OF CORRECTNESS FOR GRID SEARCHING To prove that an algorithm is correct, we need to show two things: (1) that the algorithm terminates, and (2) that it produces the correct output [5] [6]. 4.1 Algorithm Grid Searching terminates after a finite number of steps The variable T 4 holds a finite number according to the function RANGE(n) (refer Section 3) and the iterator variable starts from 1 and ends at T with increment of 3. If the iteration variable is greater than equal to T then the loop terminates and does not go into an infinite loop. 4.2 Algorithm Grid Searching produces correct output If the element is found then the function GRID_SEARCH returns the index value of the found element(s) as well as sets the value of Flag 3 to 1 and if the value is NOT FOUND then the function GRID_SEARCH returns 0 indicating that the element is not present in the 2D array/matrix, thus resulting to a correct output. NOTE: Here the order of nested If-Else condition is important and cannot be changed. If it is changed the result of the algorithm may vary. 4 refer to Grid Searching algorithm under Section
4 5. PERFORMANCE ANALYSIS AND COMPARISON Both the searching algorithm (Sequential Searching and Grid Searching) were implemented in C++ using GNU G++ Compiler. Both the searching algorithm was executed on machine with:- 32-bit Operating System having Intel Core i3-4005u 1.70GHz, 1.70GHz and installed memory (RAM) 4.00GB. 5.1 Analysis of the Function of both the algorithms Function of Linear/Sequential searching f(x): f(x) = x 2 + x + 1..(i) Function of Grid searching g(x): g(x) = x 2 /9 + 18x + 5..(ii) The functions are derived from their respective algorithms (refer Section 2 & 3). The function has taken the for loop(s), if-else condition(s) into consideration. The condition below is true for all the values of x greater than equal to 20 (x >= 20) according to the equation (i) and (ii), where x= 1, 2, 3, 4 g(x)>f(x)..(iii) Table 1: Analysis of Functions N Grid Searching (Proposed Algorithm ) Function Sequential Searching Function Figure 1 From the above graph (Fig. 1) we may come to a conclusion that Grid Searching function (g(x)) is highly effective with respect to Linear/Sequential searching (f(x)) when x >= 20 where x=1, 2, 3, 4, Analysis of Worst-case iteration complexity Worst-case iteration complexity measures the resources (e.g. running time, memory) that an algorithm requires in the worst-case. It gives an upper bound on the resources required by the algorithm. Thus the worst-case of an algorithm is the total number of iteration(s) required for searching an element which is not present in the 2D array/matrix, thus shows the total no. of iteration required for fulfilling a NOT FOUND condition. NOT FOUND condition is checked for the order of matrices (n X n) where n = 3, 6, 9, 12 According to equations (i) and (ii) from Section 5.1 f(x) = x 2 + x + 1..(i) (refer Section 5.1) Function of Linear/Sequential searching is f(x) And, g(x) = x 2 /9 + 18x + 5..(ii) (refer Section 5.1) Function of Grid searching is g(x) 29
5 The highest degree of both the equations is as follows: f(x) = g(x) = x 2.. (iii) Thus from equation (iii) we can conclude, The Orders of Complexity of both the equations are O(n 2 ) Therefore, Orders of complexity of both the algorithms are O(Grid Searching) = O(Sequential Searching) = O(n 2 ) But, According to the equation (i) and (ii) considering the highest degree of the equation with constants, We can say, x 2 >> x 2 /9.. (iv) x=1, 2, 3, 4 (x 2 is much greater than x 2 /9) Precisely, we can also say O(Grid Searching) = O(n 2 /9) O(Sequential Searching) = O(n 2 ) Figure 2 From the above graph (Fig. 2) we may conclude that Grid Searching is highly efficient with an increase in the order of matrix with respect to Linear/Sequential searching. Finally, Grid searching has complexity of O(n 2 /9) And Sequential searching has a complexity of O(n 2 ). The condition below is true for all the values of n where n = 1, 2, 3, 4 O(n 2 /9) << O(n 2 ) Table 2: Iteration Complexity n Order Grid Searching (Proposed Algorithm) Sequential Searching 5.3 Analysis of Worst-case Time complexity The worst-case time complexity indicates the longest running time performed by an algorithm given any input of size n (if the algorithm satisfies NOT FOUND condition then that is the longest running time of the algorithm), and thus this guarantees that the algorithm finishes on time and gives us the total worst-case time complexity. Moreover, the order of growth of the worst-case complexity is used to compare the efficiency of two algorithms. All the readings shown below are an average of 10 reading of a single NOT FOUND condition. Time is represented in msec, and NOT FOUND condition is checked for the order of matrices (n X n) where n = 3, 6, 9,
6 Table 3: Time Complexity N Order Grid Searching (Proposed Algorithm) Sequential Searching The condition below is true for all values of x (1, 2, 3 ) according to the equation (i) and (ii), g(x)<f(x)..(iii) Therefore, from equation (iii) we can conclude that Grid Searching is more efficient than Sequential Searching in case of Worst-case time complexity. 5.4 Analysis of Condition checking Condition checking is the number of conditions required to find a particular element in the matrix irrespective of the presence of the element in the matrix. All the readings shown below are obtained from a matrix of order 165x165, where all the elements are arranged in an ascending order (but for both the algorithms elements may not be arranged in any particular order (Ascending or Descending)) and elements are searched in a cubic function f(n) = n 3..(i) Where, n = 1, 2, 3, 4 in the matrix of order 165 x 165. Table 4: Condition Checking Figure 3 From the graph (Fig. 3) we obtain the logarithm values of the trend-line which is automatically generated by the Graph Analyzer from Table 3. The logarithm trend-line for linear/sequential searching f(x) is as follows:- f(x) = ln(x) (i) The logarithm trend-line for Grid searching g(x) is as follows:- g(x) = ln(x) (ii) n Element Grid Searching (Proposed Algorithm) Sequential Searching 31
7 Figure 4 So for searching unordered set of data in square matrix Grid searching is more efficient than Sequential searching. 7. FUTURE SCOPE Future scope of Grid searching Algorithm is as follows:- 1. If it can be implemented for any order of matrix (non-square matrix) with unordered set of data present in it. 2. Rasterization algorithm, Electro-optical display algorithm, Pixel tracing algorithm are some examples of algorithms which are derived from sequential searching and are widely used in different fields, but if the same algorithm can be built using Grid searching then the performance might increase. From the above graph (Fig. 4) we can come to a conclusion that there is not much deviation in between the two algorithms. So, Condition checking complexity of both the algorithms is nearly same and does not affect the total time complexity. 6. CONCLUSIONS Searching is the technique that is used to find a particular element in an array. In Grid searching and Sequential searching it is not compulsory to arrange an array in any order (Ascending or Descending) as in the case of binary search of 2D array. Result shows that Grid Searching Algorithm is working well for all input values and it is highly efficient than Sequential Searching in all of the following aspects: 1. Analysis of Functions (f(x) & g(x)) of both the algorithms 2. Worst-case iterations 3. Worst-case Time complexity of both the algorithms 4. Total no. of conditional checking Grid searching algorithm also satisfies both the proof of correctness. 8. REFERENCES [1] E. Horowitz and S. Sahni, fundamental of Data Structure Rockville, MD: Computer Science Press, [2] Knuth, D.E. The Art of Computer Programming, Vol. 3: Sorting and Searching, Addison Wesley (1997), 3rd ed., [3] Alfred V., Aho J., Horroroft, Jeffrey D.U. (2002) Data Structures and Algorithms. [4] Frank M.C. (2004) Data Abstraction and Problem Solving with C++. US: Pearson Education, Inc. [5] Cormen T.H., Leiserson C.E., Rivest R.L. and Stein C. (2003) Introduction to Algorithms MIT Press, Cambridge, MA, 2 nd edition. [6] Seymour Lipschutz (2009) Data Structure with C, Schaum Series, Tata McGraw-Hill Education. 9. ABOUT THE AUTHOR Rehan Guha is a student of Computer Application. He has already invented offline security software Data Security- Multi-layer Folder Lock with Hiding 5. His other two major works include Biometric Ticketing System 6 and Biometric Voting Machine and System. 5 Published in Patent journal issue no. 44/2014 on 31/10/14. 6 Issue no. 39/2015 on 25/09/
8 All works are under process for Patent by Intellectual Property India. 33
Section IV.1: Recursive Algorithms and Recursion Trees
Section IV.1: Recursive Algorithms and Recursion Trees Definition IV.1.1: A recursive algorithm is an algorithm that solves a problem by (1) reducing it to an instance of the same problem with smaller
AP Computer Science Java Mr. Clausen Program 9A, 9B
AP Computer Science Java Mr. Clausen Program 9A, 9B PROGRAM 9A I m_sort_of_searching (20 points now, 60 points when all parts are finished) The purpose of this project is to set up a program that will
Lecture Notes on Linear Search
Lecture Notes on Linear Search 15-122: Principles of Imperative Computation Frank Pfenning Lecture 5 January 29, 2013 1 Introduction One of the fundamental and recurring problems in computer science is
ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology)
ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology) Subject Description: This subject deals with discrete structures like set theory, mathematical
Pseudo code Tutorial and Exercises Teacher s Version
Pseudo code Tutorial and Exercises Teacher s Version Pseudo-code is an informal way to express the design of a computer program or an algorithm in 1.45. The aim is to get the idea quickly and also easy
CS/COE 1501 http://cs.pitt.edu/~bill/1501/
CS/COE 1501 http://cs.pitt.edu/~bill/1501/ Lecture 01 Course Introduction Meta-notes These notes are intended for use by students in CS1501 at the University of Pittsburgh. They are provided free of charge
Binary search algorithm
Binary search algorithm Definition Search a sorted array by repeatedly dividing the search interval in half. Begin with an interval covering the whole array. If the value of the search key is less than
Syllabus for Computer Science. Proposed scheme for B.Sc Programme under Choice Based Credit System
Syllabus for Computer Science Proposed scheme for B.Sc Programme under Choice Based Credit System SEMESTER - I Code Course Title Course Type HPW Credits BS106 SEMESTER -I I BS 206 SEMESTER -III BS 301
VB.NET Programming Fundamentals
Chapter 3 Objectives Programming Fundamentals In this chapter, you will: Learn about the programming language Write a module definition Use variables and data types Compute with Write decision-making statements
Skip List Data Structure Based New Searching Algorithm and Its Applications: Priority Search
Skip List Data Structure Based New Searching Algorithm and Its Applications: Priority Search Mustafa Aksu Department of Computer Technologies Vocational School of Technical Sciences, Sutcu Imam University
IMPROVING PERFORMANCE OF RANDOMIZED SIGNATURE SORT USING HASHING AND BITWISE OPERATORS
Volume 2, No. 3, March 2011 Journal of Global Research in Computer Science RESEARCH PAPER Available Online at www.jgrcs.info IMPROVING PERFORMANCE OF RANDOMIZED SIGNATURE SORT USING HASHING AND BITWISE
Polynomial Degree and Lower Bounds in Quantum Complexity: Collision and Element Distinctness with Small Range
THEORY OF COMPUTING, Volume 1 (2005), pp. 37 46 http://theoryofcomputing.org Polynomial Degree and Lower Bounds in Quantum Complexity: Collision and Element Distinctness with Small Range Andris Ambainis
I PUC - Computer Science. Practical s Syllabus. Contents
I PUC - Computer Science Practical s Syllabus Contents Topics 1 Overview Of a Computer 1.1 Introduction 1.2 Functional Components of a computer (Working of each unit) 1.3 Evolution Of Computers 1.4 Generations
Linear Programming. March 14, 2014
Linear Programming March 1, 01 Parts of this introduction to linear programming were adapted from Chapter 9 of Introduction to Algorithms, Second Edition, by Cormen, Leiserson, Rivest and Stein [1]. 1
Fast Sequential Summation Algorithms Using Augmented Data Structures
Fast Sequential Summation Algorithms Using Augmented Data Structures Vadim Stadnik [email protected] Abstract This paper provides an introduction to the design of augmented data structures that offer
Algorithm Analysis [2]: if-else statements, recursive algorithms. COSC 2011, Winter 2004, Section N Instructor: N. Vlajic
1 Algorithm Analysis []: if-else statements, recursive algorithms COSC 011, Winter 004, Section N Instructor: N. Vlajic Algorithm Analysis for-loop Running Time The running time of a simple loop for (int
Parallel Ray Tracing using MPI: A Dynamic Load-balancing Approach
Parallel Ray Tracing using MPI: A Dynamic Load-balancing Approach S. M. Ashraful Kadir 1 and Tazrian Khan 2 1 Scientific Computing, Royal Institute of Technology (KTH), Stockholm, Sweden [email protected],
Automated Model Based Testing for an Web Applications
Automated Model Based Testing for an Web Applications Agasarpa Mounica, Lokanadham Naidu Vadlamudi Abstract- As the development of web applications plays a major role in our day-to-day life. Modeling the
Efficiency of algorithms. Algorithms. Efficiency of algorithms. Binary search and linear search. Best, worst and average case.
Algorithms Efficiency of algorithms Computational resources: time and space Best, worst and average case performance How to compare algorithms: machine-independent measure of efficiency Growth rate Complexity
Symbol Tables. Introduction
Symbol Tables Introduction A compiler needs to collect and use information about the names appearing in the source program. This information is entered into a data structure called a symbol table. The
Lecture 3: Finding integer solutions to systems of linear equations
Lecture 3: Finding integer solutions to systems of linear equations Algorithmic Number Theory (Fall 2014) Rutgers University Swastik Kopparty Scribe: Abhishek Bhrushundi 1 Overview The goal of this lecture
In mathematics, it is often important to get a handle on the error term of an approximation. For instance, people will write
Big O notation (with a capital letter O, not a zero), also called Landau's symbol, is a symbolism used in complexity theory, computer science, and mathematics to describe the asymptotic behavior of functions.
Chapter 6 Quantum Computing Based Software Testing Strategy (QCSTS)
Chapter 6 Quantum Computing Based Software Testing Strategy (QCSTS) 6.1 Introduction Software testing is a dual purpose process that reveals defects and is used to evaluate quality attributes of the software,
CSC 180 H1F Algorithm Runtime Analysis Lecture Notes Fall 2015
1 Introduction These notes introduce basic runtime analysis of algorithms. We would like to be able to tell if a given algorithm is time-efficient, and to be able to compare different algorithms. 2 Linear
Notes on Complexity Theory Last updated: August, 2011. Lecture 1
Notes on Complexity Theory Last updated: August, 2011 Jonathan Katz Lecture 1 1 Turing Machines I assume that most students have encountered Turing machines before. (Students who have not may want to look
Class notes Program Analysis course given by Prof. Mooly Sagiv Computer Science Department, Tel Aviv University second lecture 8/3/2007
Constant Propagation Class notes Program Analysis course given by Prof. Mooly Sagiv Computer Science Department, Tel Aviv University second lecture 8/3/2007 Osnat Minz and Mati Shomrat Introduction This
1.2 Solving a System of Linear Equations
1.. SOLVING A SYSTEM OF LINEAR EQUATIONS 1. Solving a System of Linear Equations 1..1 Simple Systems - Basic De nitions As noticed above, the general form of a linear system of m equations in n variables
What Is Recursion? Recursion. Binary search example postponed to end of lecture
Recursion Binary search example postponed to end of lecture What Is Recursion? Recursive call A method call in which the method being called is the same as the one making the call Direct recursion Recursion
Introduction to Java
Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high
The Little Man Computer
The Little Man Computer The Little Man Computer - an instructional model of von Neuman computer architecture John von Neuman (1903-1957) and Alan Turing (1912-1954) each independently laid foundation for
Notes from Week 1: Algorithms for sequential prediction
CS 683 Learning, Games, and Electronic Markets Spring 2007 Notes from Week 1: Algorithms for sequential prediction Instructor: Robert Kleinberg 22-26 Jan 2007 1 Introduction In this course we will be looking
DATA STRUCTURES USING C
DATA STRUCTURES USING C QUESTION BANK UNIT I 1. Define data. 2. Define Entity. 3. Define information. 4. Define Array. 5. Define data structure. 6. Give any two applications of data structures. 7. Give
Chapter 3. if 2 a i then location: = i. Page 40
Chapter 3 1. Describe an algorithm that takes a list of n integers a 1,a 2,,a n and finds the number of integers each greater than five in the list. Ans: procedure greaterthanfive(a 1,,a n : integers)
S. Muthusundari. Research Scholar, Dept of CSE, Sathyabama University Chennai, India e-mail: [email protected]. Dr. R. M.
A Sorting based Algorithm for the Construction of Balanced Search Tree Automatically for smaller elements and with minimum of one Rotation for Greater Elements from BST S. Muthusundari Research Scholar,
Holland s GA Schema Theorem
Holland s GA Schema Theorem v Objective provide a formal model for the effectiveness of the GA search process. v In the following we will first approach the problem through the framework formalized by
DERIVATIVES AS MATRICES; CHAIN RULE
DERIVATIVES AS MATRICES; CHAIN RULE 1. Derivatives of Real-valued Functions Let s first consider functions f : R 2 R. Recall that if the partial derivatives of f exist at the point (x 0, y 0 ), then we
Arrays. number: Motivation. Prof. Stewart Weiss. Software Design Lecture Notes Arrays
Motivation Suppose that we want a program that can read in a list of numbers and sort that list, or nd the largest value in that list. To be concrete about it, suppose we have 15 numbers to read in from
Regression Verification: Status Report
Regression Verification: Status Report Presentation by Dennis Felsing within the Projektgruppe Formale Methoden der Softwareentwicklung 2013-12-11 1/22 Introduction How to prevent regressions in software
Chapter 2: Algorithm Discovery and Design. Invitation to Computer Science, C++ Version, Third Edition
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition Objectives In this chapter, you will learn about: Representing algorithms Examples of algorithmic problem
Operation Count; Numerical Linear Algebra
10 Operation Count; Numerical Linear Algebra 10.1 Introduction Many computations are limited simply by the sheer number of required additions, multiplications, or function evaluations. If floating-point
Regular Languages and Finite Automata
Regular Languages and Finite Automata 1 Introduction Hing Leung Department of Computer Science New Mexico State University Sep 16, 2010 In 1943, McCulloch and Pitts [4] published a pioneering work on a
Bounded Cost Algorithms for Multivalued Consensus Using Binary Consensus Instances
Bounded Cost Algorithms for Multivalued Consensus Using Binary Consensus Instances Jialin Zhang Tsinghua University [email protected] Wei Chen Microsoft Research Asia [email protected] Abstract
Figure 1: Graphical example of a mergesort 1.
CSE 30321 Computer Architecture I Fall 2011 Lab 02: Procedure Calls in MIPS Assembly Programming and Performance Total Points: 100 points due to its complexity, this lab will weight more heavily in your
10CS35: Data Structures Using C
CS35: Data Structures Using C QUESTION BANK REVIEW OF STRUCTURES AND POINTERS, INTRODUCTION TO SPECIAL FEATURES OF C OBJECTIVE: Learn : Usage of structures, unions - a conventional tool for handling a
COMP 250 Fall 2012 lecture 2 binary representations Sept. 11, 2012
Binary numbers The reason humans represent numbers using decimal (the ten digits from 0,1,... 9) is that we have ten fingers. There is no other reason than that. There is nothing special otherwise about
Homework # 3 Solutions
Homework # 3 Solutions February, 200 Solution (2.3.5). Noting that and ( + 3 x) x 8 = + 3 x) by Equation (2.3.) x 8 x 8 = + 3 8 by Equations (2.3.7) and (2.3.0) =3 x 8 6x2 + x 3 ) = 2 + 6x 2 + x 3 x 8
Rethinking SIMD Vectorization for In-Memory Databases
SIGMOD 215, Melbourne, Victoria, Australia Rethinking SIMD Vectorization for In-Memory Databases Orestis Polychroniou Columbia University Arun Raghavan Oracle Labs Kenneth A. Ross Columbia University Latest
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING LESSON PLAN
ERODE SENGUNTHAR ENGINEERING COLLEGE (Approved by AICTE, New Delhi, Permanently Affiliated to Anna University - Chennai & Accredited by NAAC & National Board of Accreditation (NBA), New Delhi, Accredited
8 Square matrices continued: Determinants
8 Square matrices continued: Determinants 8. Introduction Determinants give us important information about square matrices, and, as we ll soon see, are essential for the computation of eigenvalues. You
Determining the Optimal Combination of Trial Division and Fermat s Factorization Method
Determining the Optimal Combination of Trial Division and Fermat s Factorization Method Joseph C. Woodson Home School P. O. Box 55005 Tulsa, OK 74155 Abstract The process of finding the prime factorization
5: Magnitude 6: Convert to Polar 7: Convert to Rectangular
TI-NSPIRE CALCULATOR MENUS 1: Tools > 1: Define 2: Recall Definition --------------- 3: Delete Variable 4: Clear a-z 5: Clear History --------------- 6: Insert Comment 2: Number > 1: Convert to Decimal
recursion, O(n), linked lists 6/14
recursion, O(n), linked lists 6/14 recursion reducing the amount of data to process and processing a smaller amount of data example: process one item in a list, recursively process the rest of the list
ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER
ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER Pierre A. von Kaenel Mathematics and Computer Science Department Skidmore College Saratoga Springs, NY 12866 (518) 580-5292 [email protected] ABSTRACT This paper
the recursion-tree method
the recursion- method recurrence into a 1 recurrence into a 2 MCS 360 Lecture 39 Introduction to Data Structures Jan Verschelde, 22 November 2010 recurrence into a The for consists of two steps: 1 Guess
Introduction to Theory of Computation
Introduction to Theory of Computation Prof. (Dr.) K.R. Chowdhary Email: [email protected] Formerly at department of Computer Science and Engineering MBM Engineering College, Jodhpur Tuesday 28 th
CS 3719 (Theory of Computation and Algorithms) Lecture 4
CS 3719 (Theory of Computation and Algorithms) Lecture 4 Antonina Kolokolova January 18, 2012 1 Undecidable languages 1.1 Church-Turing thesis Let s recap how it all started. In 1990, Hilbert stated a
DATABASE DESIGN - 1DL400
DATABASE DESIGN - 1DL400 Spring 2015 A course on modern database systems!! http://www.it.uu.se/research/group/udbl/kurser/dbii_vt15/ Kjell Orsborn! Uppsala Database Laboratory! Department of Information
The Mixed Binary Euclid Algorithm
Electronic Notes in Discrete Mathematics 35 (009) 169 176 www.elsevier.com/locate/endm The Mixed Binary Euclid Algorithm Sidi Mohamed Sedjelmaci LIPN CNRS UMR 7030 Université Paris-Nord Av. J.-B. Clément,
Data Structures. Chapter 8
Chapter 8 Data Structures Computer has to process lots and lots of data. To systematically process those data efficiently, those data are organized as a whole, appropriate for the application, called a
Chapter 13: Query Processing. Basic Steps in Query Processing
Chapter 13: Query Processing! Overview! Measures of Query Cost! Selection Operation! Sorting! Join Operation! Other Operations! Evaluation of Expressions 13.1 Basic Steps in Query Processing 1. Parsing
recursion here it is in C++ power function cis15 advanced programming techniques, using c++ fall 2007 lecture # VI.1
topics: recursion searching cis15 advanced programming techniques, using c++ fall 2007 lecture # VI.1 recursion recursion is defining something in terms of itself there are many examples in nature and
CS 575 Parallel Processing
CS 575 Parallel Processing Lecture one: Introduction Wim Bohm Colorado State University Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5
JavaScript: Arrays. 2008 Pearson Education, Inc. All rights reserved.
1 10 JavaScript: Arrays 2 With sobs and tears he sorted out Those of the largest size... Lewis Carroll Attempt the end, and never stand to doubt; Nothing s so hard, but search will find it out. Robert
CSE 135: Introduction to Theory of Computation Decidability and Recognizability
CSE 135: Introduction to Theory of Computation Decidability and Recognizability Sungjin Im University of California, Merced 04-28, 30-2014 High-Level Descriptions of Computation Instead of giving a Turing
DYNAMIC DOMAIN CLASSIFICATION FOR FRACTAL IMAGE COMPRESSION
DYNAMIC DOMAIN CLASSIFICATION FOR FRACTAL IMAGE COMPRESSION K. Revathy 1 & M. Jayamohan 2 Department of Computer Science, University of Kerala, Thiruvananthapuram, Kerala, India 1 [email protected]
Analysis of Binary Search algorithm and Selection Sort algorithm
Analysis of Binary Search algorithm and Selection Sort algorithm In this section we shall take up two representative problems in computer science, work out the algorithms based on the best strategy to
COMPUTER SCIENCE. Paper 1 (THEORY)
COMPUTER SCIENCE Paper 1 (THEORY) (Three hours) Maximum Marks: 70 (Candidates are allowed additional 15 minutes for only reading the paper. They must NOT start writing during this time) -----------------------------------------------------------------------------------------------------------------------
Offline 1-Minesweeper is NP-complete
Offline 1-Minesweeper is NP-complete James D. Fix Brandon McPhail May 24 Abstract We use Minesweeper to illustrate NP-completeness proofs, arguments that establish the hardness of solving certain problems.
Row Echelon Form and Reduced Row Echelon Form
These notes closely follow the presentation of the material given in David C Lay s textbook Linear Algebra and its Applications (3rd edition) These notes are intended primarily for in-class presentation
A Dynamic Programming Approach for Generating N-ary Reflected Gray Code List
A Dynamic Programming Approach for Generating N-ary Reflected Gray Code List Mehmet Kurt 1, Can Atilgan 2, Murat Ersen Berberler 3 1 Izmir University, Department of Mathematics and Computer Science, Izmir
SYSTEMS OF EQUATIONS AND MATRICES WITH THE TI-89. by Joseph Collison
SYSTEMS OF EQUATIONS AND MATRICES WITH THE TI-89 by Joseph Collison Copyright 2000 by Joseph Collison All rights reserved Reproduction or translation of any part of this work beyond that permitted by Sections
Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C
Tutorial#1 Q 1:- Explain the terms data, elementary item, entity, primary key, domain, attribute and information? Also give examples in support of your answer? Q 2:- What is a Data Type? Differentiate
AP Computer Science AB Syllabus 1
AP Computer Science AB Syllabus 1 Course Resources Java Software Solutions for AP Computer Science, J. Lewis, W. Loftus, and C. Cocking, First Edition, 2004, Prentice Hall. Video: Sorting Out Sorting,
Data Structures Fibonacci Heaps, Amortized Analysis
Chapter 4 Data Structures Fibonacci Heaps, Amortized Analysis Algorithm Theory WS 2012/13 Fabian Kuhn Fibonacci Heaps Lacy merge variant of binomial heaps: Do not merge trees as long as possible Structure:
Methods for Finding Bases
Methods for Finding Bases Bases for the subspaces of a matrix Row-reduction methods can be used to find bases. Let us now look at an example illustrating how to obtain bases for the row space, null space,
Get an Easy Performance Boost Even with Unthreaded Apps. with Intel Parallel Studio XE for Windows*
Get an Easy Performance Boost Even with Unthreaded Apps for Windows* Can recompiling just one file make a difference? Yes, in many cases it can! Often, you can achieve a major performance boost by recompiling
BCS2B02: OOP Concepts and Data Structures Using C++
SECOND SEMESTER BCS2B02: OOP Concepts and Data Structures Using C++ Course Number: 10 Contact Hours per Week: 4 (2T + 2P) Number of Credits: 2 Number of Contact Hours: 30 Hrs. Course Evaluation: Internal
One Dimension Array: Declaring a fixed-array, if array-name is the name of an array
Arrays in Visual Basic 6 An array is a collection of simple variables of the same type to which the computer can efficiently assign a list of values. Array variables have the same kinds of names as simple
Metric Spaces. Chapter 7. 7.1. Metrics
Chapter 7 Metric Spaces A metric space is a set X that has a notion of the distance d(x, y) between every pair of points x, y X. The purpose of this chapter is to introduce metric spaces and give some
8.2. Solution by Inverse Matrix Method. Introduction. Prerequisites. Learning Outcomes
Solution by Inverse Matrix Method 8.2 Introduction The power of matrix algebra is seen in the representation of a system of simultaneous linear equations as a matrix equation. Matrix algebra allows us
SELECTING NEURAL NETWORK ARCHITECTURE FOR INVESTMENT PROFITABILITY PREDICTIONS
UDC: 004.8 Original scientific paper SELECTING NEURAL NETWORK ARCHITECTURE FOR INVESTMENT PROFITABILITY PREDICTIONS Tonimir Kišasondi, Alen Lovren i University of Zagreb, Faculty of Organization and Informatics,
Hardware-Aware Analysis and. Presentation Date: Sep 15 th 2009 Chrissie C. Cui
Hardware-Aware Analysis and Optimization of Stable Fluids Presentation Date: Sep 15 th 2009 Chrissie C. Cui Outline Introduction Highlights Flop and Bandwidth Analysis Mehrstellen Schemes Advection Caching
B.Sc.(Computer Science) and. B.Sc.(IT) Effective From July 2011
NEW Detailed Syllabus of B.Sc.(Computer Science) and B.Sc.(IT) Effective From July 2011 SEMESTER SYSTEM Scheme & Syllabus for B.Sc. (CS) Pass and Hons. Course Effective from July 2011 and onwards CLASS
1 Lecture: Integration of rational functions by decomposition
Lecture: Integration of rational functions by decomposition into partial fractions Recognize and integrate basic rational functions, except when the denominator is a power of an irreducible quadratic.
Module 2 Stacks and Queues: Abstract Data Types
Module 2 Stacks and Queues: Abstract Data Types A stack is one of the most important and useful non-primitive linear data structure in computer science. It is an ordered collection of items into which
Vector storage and access; algorithms in GIS. This is lecture 6
Vector storage and access; algorithms in GIS This is lecture 6 Vector data storage and access Vectors are built from points, line and areas. (x,y) Surface: (x,y,z) Vector data access Access to vector
Java Software Structures
INTERNATIONAL EDITION Java Software Structures Designing and Using Data Structures FOURTH EDITION John Lewis Joseph Chase This page is intentionally left blank. Java Software Structures,International Edition
MATH 4330/5330, Fourier Analysis Section 11, The Discrete Fourier Transform
MATH 433/533, Fourier Analysis Section 11, The Discrete Fourier Transform Now, instead of considering functions defined on a continuous domain, like the interval [, 1) or the whole real line R, we wish
Theory of Computation Chapter 2: Turing Machines
Theory of Computation Chapter 2: Turing Machines Guan-Shieng Huang Feb. 24, 2003 Feb. 19, 2006 0-0 Turing Machine δ K 0111000a 01bb 1 Definition of TMs A Turing Machine is a quadruple M = (K, Σ, δ, s),
1 Definition of a Turing machine
Introduction to Algorithms Notes on Turing Machines CS 4820, Spring 2012 April 2-16, 2012 1 Definition of a Turing machine Turing machines are an abstract model of computation. They provide a precise,
Integer factorization is in P
Integer factorization is in P Yuly Shipilevsky Toronto, Ontario, Canada E-mail address: [email protected] Abstract A polynomial-time algorithm for integer factorization, wherein integer factorization
How Does My TI-84 Do That
How Does My TI-84 Do That A guide to using the TI-84 for statistics Austin Peay State University Clarksville, Tennessee How Does My TI-84 Do That A guide to using the TI-84 for statistics Table of Contents
GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT. Course Curriculum. DATA STRUCTURES (Code: 3330704)
GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT Course Curriculum DATA STRUCTURES (Code: 3330704) Diploma Programme in which this course is offered Semester in which offered Computer Engineering,
Continued Fractions and the Euclidean Algorithm
Continued Fractions and the Euclidean Algorithm Lecture notes prepared for MATH 326, Spring 997 Department of Mathematics and Statistics University at Albany William F Hammond Table of Contents Introduction
A Direct Numerical Method for Observability Analysis
IEEE TRANSACTIONS ON POWER SYSTEMS, VOL 15, NO 2, MAY 2000 625 A Direct Numerical Method for Observability Analysis Bei Gou and Ali Abur, Senior Member, IEEE Abstract This paper presents an algebraic method
