1. Trang chủ
  2. » Công Nghệ Thông Tin

Lecture An introduction to computer science using java (2nd Edition): Chapter 8 - S.N. Kamin, D. Mickunas, E. Reingold

29 81 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 291,04 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chapter 8 - One-dimensional arrays. In this chapter we will: introduce the array as a structure for storing large amounts of data, discuss common array operations, introduce algorithms for searching and sorting arrays, show how multiple images can be painted from an array to use in programming simple animations.

Trang 1

by S.N Kamin, D Mickunas, E Reingold

Trang 2

   

Chapter Preview

In this chapter we will:

• introduce the array as a structure for storing large amounts of data

• discuss common array operations

• introduce algorithms for searching and sorting arrays

• show how multiple images can be painted

from an array to use in programming simple animations

Trang 4

counts = new int[10];

scores = new double[15];

studentNames = new String[10];

Trang 5

• Each box is an int variable

• The numbers on top are each variable’s subscript or index

• An array of size 10 has subscripts 0 to 9

Trang 6

   

Array Subscripts

• Arrays can contain any one type of value

(either primitive values or references)

• Subscripts are used to access specific array values

• Examples:

counts[0] // first variable in counts

counts[1] // second variable in counts

counts[9] // last variable in counts

counts[10] // error – trying to access

// variable outside counts

Trang 7

   

Expressions as Subscripts

• Array subscripts do not have to be constants

• Array subscripts do need to be integer

expressions that evaluate to valid subscript values for the current array allocation

• Examples:

counts[i]

counts[2*i]

counts[I/2]

Trang 8

• You do not need to allocate the array

explicitly after it is initialized

• Example:

int [] primes =

{2, 3, 5, 7, 11, 13, 17, 19, 23, 29};

Trang 9

   

Initializing an Array of Strings

final Sring[ ] NAME = {

“Sunday”, “Monday”, “Tuesday”,

“Wednesday”, “Thursday”, “Friday”, “Saturday”};

// procedure that prints the day of week public void printName (int day,

OutputBox out) { out.print(NAME[day – 1]);

}

Trang 10

   

Trang 11

   

Aliases

• It is possible to have two different variables refer to the same array

• When this happens these variables are called aliases

• Creating aliases is not a good programming practice

• Example of how it can happen:

int [ ] A, B;

B = new int [10];

A = B;

Trang 12

   

Trang 13

• Prints the contents of counts using length

for (int i=0; i < counts.length; i++) { out.println(counts[i]);

}

Trang 14

   

Extra Capacity Array

• Arrays cannot grow after they have been

allocated

• You can allocate more space than you

believe your application will need

• If you guess too low, you will still run out of space

• You do not need to use all the elements in an array (but total computer memory is finite)

Trang 16

   

Trang 17

   

Processing Parallel Arrays

• This loop counts the number of students

whose performance improved from the first test to the second

Trang 18

   

Trang 19

Student[ ] students;

students = new Student[10];

Trang 20

   

Passing Arrays as Arguments

• When an array is passed as an argument to a

method, what is passed is a pointer to the array, not

a new array (arrays are passed by reference)

• This means that if the method makes changes to the array, these changes are still in effect when the

method returns to its caller

• This is not true for primitive values which are passed

by value and not by reference

• Method header example:

public void read(Student[ ] students) {

Trang 21

   

Selection Sort

• Find the smallest element among the elements

A[0] A[n-1] and call it A[min]

• Swap A[0] and A[min] so A[0] contains the smallest element and A[1] A[n-1] not sorted

• Now the smallest element among the elements

A[1] A[n-1] and call it A[min]

• Swap A[1] and A[min] so A[1] contains the second smallest element and A[2] A[n-1] not sorted

• Proceed similarly for A[3], A[4], and so on

Trang 22

   

SelectionSort Class – part 1

public class SelectionSort {

public void selectionSort (double[] A, int size) { for (int i=0; i < size; i++) {

// elements in A[0] A[i–1] are less than

// elements in A[i] A[size-1] and

// A[0] A[i-1] are sorted

int min = findMinimum(A, i, size);

swap(A, I, min);

}

}

Trang 23

   

SelectionSort Class – part 2

int findMinimum (double[] A, int i, int size) {

int j, min = 1;

for (j= i + 1; j < size; j++)

// A[min] <= all elements in A[0] A[j–1]

if (A[j] < A[min]) min =j;

return min;

}

void swap (double[] A, int I, int j) {

double temp = A[i];

A[i] = A[j];

A[j] = temp;

}

}

Trang 24

   

Insertion Sort

• Iterate over subscripts 1 to n-1

– At the ith step, shift the elements A[0] A[i]

so that this part of the array is sorted

• Note: when the ith iteration begins

elements A[0] A[i – 1] are already

sorted, so the only shifting is that

required to insert A[i] into A[0] A[i-1]

Trang 26

   

Linear Search

int linearSearch (int[] A, int key) int i;

for (i = 0; i < A.length; i++) {

// key not in A[0] A[i - 1]

Trang 27

• Epsilon should be as small a value as is

acceptable for your application

Trang 28

   

Using Arrays in Animation

Image[] mouse = new Image[NUMBER];

Int[] sleepTime = {1540, 240, 240, 240, 240, 240, 240, 240,

240, 240, 240, 240, 240, 240, 240}; public void show( ) {

for (int i = 0; i < NUMBER; i++)

Trang 29

   

Ngày đăng: 11/01/2020, 19:27

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN