Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so...
-
Upload
matilda-hill -
Category
Documents
-
view
218 -
download
2
Transcript of Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so...
![Page 1: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/1.jpg)
Week # 2: Arrays
![Page 2: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/2.jpg)
Data structure A particular way of storing and organising data in a computer so that it can be used efficiently
Types of data structures Based on memory allocation
o Static (or fixed sized) data structures (Arrays)o Dynamic data structures (Linked lists)
Based on representationo Linear (Arrays/linked lists)o Non-linear (Trees/graphs)
![Page 3: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/3.jpg)
You want to store 5 numbers in a computer Define 5 variables, e.g. num1, num2, ..., num5
What, if you want to store 1000 numbers? Defining 1000 variables is a pity! Requires much programming effort
Any better solution? Yes, some structured data type
o Array is one of the most common structured data typeso Saves a lot of programming effort (cf. 1000 variable names)
![Page 4: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/4.jpg)
A collection of data elements in which all elements are of the same data type, hence homogeneous data
o An array of students’ markso An array of students’ nameso An array of objects (OOP perspective!)
elements (or their references) are stored at contiguous/ consecutive memory locations
Array is a static data structure An array cannot grow or shrink during program execution – its size is fixed
![Page 5: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/5.jpg)
Array name (data) Index/subscript (0...9) The slots are numbered sequentially starting at zero (Java, C++) If there are N slots in an array, the index will be 0 through N-1
Array length = N = 10 Array size = N x Size of an element = 40
Direct access to an element
![Page 6: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/6.jpg)
All elements in the array must have the same data type
Index:
Value: 5 10 18 30 45 50 60 65 70 80
0 1 2 3 4 5 6 7 8 9
Index:
Value: 5.5 10.2 18.5 45.6 60.5
0 1 2 43
Index:
Value: ‘A’ 10.2 55 ‘X’ 60.5
0 1 2 43
Not an array
![Page 7: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/7.jpg)
Array elements are stored at contiguous memory locations
No empty segment in between values (3 & 5 are empty – not allowed)
Index:
Value: 5 10 18 30 45 50 60 65 70 80
0 1 2 3 4 5 6 7 8 9
Index:
Value: 5 10 18 45 60 65 70 80
0 1 2 3 4 5 6 7 8 9
![Page 8: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/8.jpg)
Declaring and Creating arrays◦ Arrays are objects that occupy memory◦ Created dynamically with keyword new
int c[] = new int[ 12 ]; Equivalent to
int c[]; // declare array variable c = new int[ 12 ]; // create array
We can create arrays of objects tooString b[] = new String[ 100 ];
![Page 9: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/9.jpg)
Array_name[index] For example, in Java
System.out.println(data[4]) will display 0
data[3] = 99 will replace -3 with 99
![Page 10: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/10.jpg)
Array_name[index] For example, in Java
System.out.println(data[4]) will display 0
data[3] = 99 will replace -3 with 99
![Page 11: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/11.jpg)
Using an array initializer◦ Use initializer list
Items enclosed in braces ({}) Items in list separated by commasint n[] = { 10, 20, 30, 40, 50 }; Creates a five-element array Index values of 0, 1, 2, 3, 4
◦ Do not need keyword new
![Page 12: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/12.jpg)
To declare an array follow the type with (empty) []sint[] grade; //orint grade[]; //both declare an int array
In Java arrays are objects so must be created with the new
keyword To create an array of ten integers:
int[] grade = new int[10];Note that the array size has to be specified, although it can be
specified with a variable at run-time
![Page 13: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/13.jpg)
• Calculating the value to store in each array element– Initialize elements of 10-element array to even integers
![Page 14: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/14.jpg)
InitArray.java
Line 10Declare array as an array of ints
Line 12Create 10 ints for array
Line 16Use array index to assign array value
![Page 15: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/15.jpg)
![Page 16: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/16.jpg)
Summing the elements of an array◦ Array elements can represent a series of values
We can sum these values
![Page 17: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/17.jpg)
Histogram.java
Line 9Declare array with initializer list
Line 19For each array element, print associated number of asterisks
![Page 18: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/18.jpg)
![Page 19: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/19.jpg)
data[ -1 ] always illegal data[ 10 ] illegal (10 > upper bound) data[ 1.5 ] always illegal data[ 0 ] always OK data[ 9 ] OK
Q. What will be the output of?1. data[5] + 102. data[3] = data[3] + 10
![Page 20: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/20.jpg)
One dimensional (just a linear list)
e.g.,
Only one subscript is required to access an individual element
Two dimensional (matrix/table)
e.g., 2 x 4 matrix (2 rows, 4 columns)
5 10 18 30 45 50 60 65 70 80
Col 0 Col 1 Col 2 Col 3
Row 0 20 25 60 40
Row 1 30 15 70 90
![Page 21: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/21.jpg)
Multidimensional arrays◦ Tables with rows and columns
Two-dimensional array Declaring two-dimensional array b[2][2]int b[][] = { { 1, 2 }, { 3, 4 } }; 1 and 2 initialize b[0][0] and b[0][1] 3 and 4 initialize b[1][0] and b[1][1]
int b[][] = { { 1, 2 }, { 3, 4, 5 } }; row 0 contains elements 1 and 2 row 1 contains elements 3, 4 and 5
![Page 22: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/22.jpg)
Creating multidimensional arrays◦ Can be allocated dynamically
3-by-4 array int b[][]; b = new int[ 3 ][ 4 ];
Rows can have different number of columns int b[][]; b = new int[ 2 ][ ]; // allocate rows b[ 0 ] = new int[ 5 ]; // allocate row 0 b[ 1 ] = new int[ 3 ]; // allocate row 1
![Page 23: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/23.jpg)
a[ 1 ][ 0 ] a[ 1 ][ 1 ] a[ 1 ][ 2 ] a[ 1 ][ 3 ]
Row 0
Row 1
Row 2
Column 0 Column 1 Column 2 Column 3
Row index
Array name
Column index
a[ 0 ][ 0 ] a[ 0 ][ 1 ] a[ 0 ][ 2 ] a[ 0 ][ 3 ]
a[ 2 ][ 0 ] a[ 2 ][ 1 ] a[ 2 ][ 2 ] a[ 2 ][ 3 ]
![Page 24: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/24.jpg)
InitArray.java
Line 16Declare array1 with six initializers in two sublists
Line 17Declare array2 with six initializers in three sublists
![Page 25: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/25.jpg)
InitArray.java
Line 34array[row].length returns number of columns associated with row subscript
Line 35Use double-bracket notation to access two-dimensional array values
![Page 26: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/26.jpg)
Searching◦ Finding elements in large amounts of data
Determine whether array contains value matching key value
◦ Linear searching◦ Binary searching
![Page 27: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/27.jpg)
Linear search◦ Compare each array element with search key
If search key found, return element index If search key not found, return –1 (invalid index)
◦ Works best for small or unsorted arrays◦ Inefficient for larger arrays
![Page 28: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/28.jpg)
LinearSearch.java
Line 11Declare array of ints
![Page 29: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/29.jpg)
LinearSearch.javaLines 39-42Allocate 100 ints for array and populate array with even ints
Line 50Loop through array
Lines 53-54If array element at index matches search key, return index
![Page 30: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/30.jpg)
LinearSearch.java
Line 61 Invoked when user presses Enter
Line 68Invoke method linearSearch, using array and search key as arguments
![Page 31: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/31.jpg)
Binary search◦ Efficient for large, sorted arrays◦ Eliminates half of the elements in search through each
pass Compare middle array element to search key
If element equals key Return array index
If element is less than key Repeat search on first half of array
If element is greater then key Repeat search on second half of array
Continue search until element equals search key (success) Search contains one element not equal to key (failure)
![Page 32: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/32.jpg)
Declae array of ints
BinarySearch.java
Line 14Declare array of ints
![Page 33: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/33.jpg)
BinarySearch.java
Lines 48-51Allocate 15 ints for array and populate array with even ints
Line 56Invoked when user presses Enter
![Page 34: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/34.jpg)
BinarySearch.javaLine 65Invoke method binarySearch, using array and search key as arguments
![Page 35: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/35.jpg)
BinarySearch.javaLines 93-94If search key matches middle array element, return element indexLines 97-98If search key is less than middle array element, repeat search on first array halfLines 101-102If search key is greater than middle array element, repeat search on second array halfLines 112-137Method build-Output displays array contents being searched
![Page 36: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/36.jpg)
BinarySearch.java
Line 128Display an asterisk next to middle element
![Page 37: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/37.jpg)
![Page 38: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/38.jpg)
SortingSorting
Motivation Generally, to arrange a list of elements in some order
List of numbers 10 20 50 30 40 60 25 (Unsorted list) 10 20 25 30 40 50 60 (Sorted list,
ascending) 60 50 40 30 25 20 10 (Sorted list,
descending) List of alphabets
P A K I S T A N (Unsorted list) A A I K N P S T (Sorted list, ascending) T S P N K I A A (Sorted list, descending)
![Page 39: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/39.jpg)
Sorting AlgorithmsSorting AlgorithmsSorting AlgorithmsSorting Algorithms
1. Bubble Sort
2. Selection Sort
There are few more sorting algorithms; you can find them in a book on data structures and algorithms (or on the Web)
![Page 40: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/40.jpg)
Bubble Sort Algorithm: Bubble Sort Algorithm: InformalInformalBubble Sort Algorithm: Bubble Sort Algorithm: InformalInformal Repeatedly compare the elements at
consecutive locations in a given list, and do the following until the elements are in required order:
If elements are not in the required order, swap them (change their position)
Otherwise do nothing
![Page 41: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/41.jpg)
3
15
45
40
8
12
5
22
14
3
15
45
40
8
12
5
22
14
3
15
45
40
22
8
12
5
14
3
15
45
40
22
8
12
5
14
Bubble Sort in Action: Bubble Sort in Action: Phase 1Phase 1
3
15
45
40
8
12
22
5
14
3
15
45
40
8
22
12
5
14
3
15
45
40
22
8
12
5
14
3
45
15
40
22
8
12
5
14
45
3
15
40
22
8
12
5
14
8 comparisons
![Page 42: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/42.jpg)
45
3
15
40
22
8
12
5
14
45
3
15
40
22
14
8
12
5
45
3
15
40
22
14
8
12
5
Bubble Sort in Action: Bubble Sort in Action: Phase 2Phase 2
45
3
15
40
22
8
12
14
5
45
3
15
40
22
8
14
12
5
45
3
15
40
22
14
8
12
5
45
3
40
15
22
14
8
12
5
45
40
3
15
22
14
8
12
5
7 comparisons
![Page 43: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/43.jpg)
45
40
3
15
22
14
12
8
5
45
40
3
15
22
14
12
8
5
45
40
3
15
22
14
8
12
5
45
40
3
15
22
14
8
12
5
45
40
3
15
22
14
12
8
5
45
40
3
22
15
14
12
8
5
45
40
22
3
15
14
12
8
5
Bubble Sort in Action: Bubble Sort in Action: Phase 3Phase 3
6 comparisons
![Page 44: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/44.jpg)
45
40
22
3
15
14
12
8
5
Bubble Sort in Action: Bubble Sort in Action: Phase 4Phase 4
45
40
22
3
15
14
12
8
5
45
40
22
3
15
14
12
8
5
45
40
22
3
15
14
12
8
5
45
40
22
3
15
14
12
8
5
45
40
22
15
3
14
12
8
5
5 comparisons
![Page 45: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/45.jpg)
Bubble Sort in Action: Bubble Sort in Action: Phase 5Phase 5
45
40
22
15
3
14
12
8
5
4 comparisons
45
40
22
15
3
14
12
8
5
45
40
22
15
3
14
12
8
5
45
40
22
15
3
14
12
8
5
45
40
22
15
14
3
12
8
5
![Page 46: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/46.jpg)
Bubble Sort in Action: Bubble Sort in Action: Phase 6Phase 6
3 comparisons
45
40
22
15
14
3
12
8
5
45
40
22
15
14
3
12
8
5
45
40
22
15
14
3
12
8
5
45
40
22
15
14
12
3
8
5
![Page 47: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/47.jpg)
Bubble Sort in Action: Bubble Sort in Action: Phase 7Phase 7
2 comparisons
45
40
22
15
14
12
3
8
5
45
40
22
15
14
12
3
8
5
45
40
22
15
14
12
8
3
5
![Page 48: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/48.jpg)
Bubble Sort in Action: Bubble Sort in Action: Phase 8Phase 8
1 comparison
45
40
22
15
14
12
8
3
5
45
40
22
15
14
12
8
5
3
![Page 49: Week # 2: Arrays. Data structure A particular way of storing and organising data in a computer so that it can be used efficiently Types of data.](https://reader036.fdocuments.in/reader036/viewer/2022081519/56649f3d5503460f94c5d3d4/html5/thumbnails/49.jpg)
Bubble Sort Algorithm in Bubble Sort Algorithm in JavaJava
Bubble Sort Algorithm in Bubble Sort Algorithm in JavaJava void bubbleSort(int List[])
{ int temp; int size = List.length; for (i = 0; i < size - 1; i++) {
for (j = 0; j < size – (i + 1); j++) { if (List[j] > List[j+1]) { //swap
temp = List[j];List[j] = List[j+1];List[j+1] = temp;
} }
}}