Basic Algorithms on Arrays
Learning Objectives Arrays are useful for storing data in a linear structure We learn how to process data stored in an array We learn how to Read a file and store a set of Strings in an array We learn how to find a specific String in an array We learn how to find ALL Strings that starts with a prefix String And more……
We recall an Array Characteristics - A contiguous block of memory spaces - Each one is referred to by an index - indices start from 0 and go to n-1 - Array is “homogeneous”, that is, it can only keep one type of data
Define and initialize an array int[ ] A = new int[10]; A[0] = 10; A[1] = 20; …..
Arrays are Static Once defined Size cannot be changed A.length = 20; /* illegal */ A Why? Because a Static Memory Block is already allocated and it cannot be changed.
So how do we change size? double the size int[ ] B = new int[2*A.length]; for (int i=0; i<A.length; i++){ B[i] = A[i]; } A = B; Define a new array B of double the size Iterate through the array A Copy old elements of A to B Discard old A and assign new B to A
Operations on Arrays
Iterate through all elements in the array for (int i =0; i < A.length; i = i + 1) { /* write your code here */ }
Iterate backwards for (int i = A.length-1; i >= 0; i = i - 1) { /* write your code here */ }
Reverse the Array Think of an algorithm to do this
Find the max/min in an Array for (int i = 0; i < A.length ; i = i + 1) { }
Array of Strings aaaade6asdbbtroriohelpmeyesno for (int i = 0; i < A.length ; i = i + 1) { } Print all Strings starting with prefix
Now to class work
Next Linear and Binary Search on Arrays