• Tidak ada hasil yang ditemukan

Lab session 9 (Recursion 2) CSC 113 King Saud University Computer and Information Sciences

N/A
N/A
Protected

Academic year: 2025

Membagikan "Lab session 9 (Recursion 2) CSC 113 King Saud University Computer and Information Sciences"

Copied!
4
0
0

Teks penuh

(1)

Lab session 9 (Recursion 2) CSC 113

King Saud University

Computer and Information Sciences

1 String manipulation

Write the class ArrayRecursor. For each recursive method, write a public method to provide a clean interface, and a private helper method to perform the recursion. You should think carefully about what the helper method needs to have as parameters.

• Do not use loops.

• Do not give the class any attributes

• Do not use static variables.

1.1 Exercise 1

Write the static, recursive method reverseArray which receives an array of integers and reverses it in place. The method does not return anything.

• Note: Do not create a new string.

1 1 ) E n t e r a new a r r a y .

2 2 ) P r i n t c u r r e n t a r r a y .

3 3 ) R e v e r s e c u r r e n t a r r a y .

4 4 ) C o u n t o c c u r a n c e s .

5 5 ) Check i f a r r a y i s p a l i n d r o m e

6 6 ) Merge w i t h a n o t h e r s o r t e d a r r a y .

7 7 ) S e a r c h i n t h e s o r t e d a r r a y .

8 8 ) Q u i t

9 E n t e r a c h o i c e : 2

10 [ 1 , 2 , 3 , 4 ]

11 1 ) E n t e r a new a r r a y .

12 2 ) P r i n t c u r r e n t a r r a y .

13 3 ) R e v e r s e c u r r e n t a r r a y .

14 4 ) C o u n t o c c u r a n c e s .

15 5 ) Check i f a r r a y i s p a l i n d r o m e

16 6 ) Merge w i t h a n o t h e r s o r t e d a r r a y .

17 7 ) S e a r c h i n t h e s o r t e d a r r a y .

18 8 ) Q u i t

19 E n t e r a c h o i c e : 3

20 A r r a y r e v e r s e d !

1

(2)

21 1 ) E n t e r a new a r r a y .

22 2 ) P r i n t c u r r e n t a r r a y .

23 3 ) R e v e r s e c u r r e n t a r r a y .

24 4 ) C o u n t o c c u r a n c e s .

25 5 ) Check i f a r r a y i s p a l i n d r o m e

26 6 ) Merge w i t h a n o t h e r s o r t e d a r r a y .

27 7 ) S e a r c h i n t h e s o r t e d a r r a y .

28 8 ) Q u i t

29 E n t e r a c h o i c e : 2

30 [ 4 , 3 , 2 , 1 ]

1.2 Exercise 2

Write the static, recursive method occurances which receives an array a of integers, an integer x and returns the number of times that x appears in a.

1 1 ) E n t e r a new a r r a y .

2 2 ) P r i n t c u r r e n t a r r a y .

3 3 ) R e v e r s e c u r r e n t a r r a y .

4 4 ) C o u n t o c c u r a n c e s .

5 5 ) Check i f a r r a y i s p a l i n d r o m e

6 6 ) Merge w i t h a n o t h e r s o r t e d a r r a y .

7 7 ) S e a r c h i n t h e s o r t e d a r r a y .

8 8 ) Q u i t

9 E n t e r a c h o i c e : 4

10 E n t e r a number : 2

11 The number 2 o c c u r s 3 t i m e s i n [ 1 , 2 , 5 , 0 , 2 , 3 , 2 ]

1.3 Exercise 3

Write the static, recursive method palindrome which receives a string s and returns true if s is a palindrome and returns false otherwise.

1 1 ) E n t e r a new a r r a y .

2 2 ) P r i n t c u r r e n t a r r a y .

3 3 ) R e v e r s e c u r r e n t a r r a y .

4 4 ) C o u n t o c c u r a n c e s .

5 5 ) Check i f a r r a y i s p a l i n d r o m e

6 6 ) Merge w i t h a n o t h e r s o r t e d a r r a y .

7 7 ) S e a r c h i n t h e s o r t e d a r r a y .

8 8 ) Q u i t

9 E n t e r a c h o i c e : 5

10 The a r r a y [ 1 , 2 , 3 , 4 ] i s n o t a p a l i n d r o m e

1 1 ) E n t e r a new a r r a y .

2 2 ) P r i n t c u r r e n t a r r a y .

3 3 ) R e v e r s e c u r r e n t a r r a y .

4 4 ) C o u n t o c c u r a n c e s .

5 5 ) Check i f a r r a y i s p a l i n d r o m e

6 6 ) Merge w i t h a n o t h e r s o r t e d a r r a y .

7 7 ) S e a r c h i n t h e s o r t e d a r r a y .

8 8 ) Q u i t

9 E n t e r a c h o i c e : 5

10 The a r r a y [ 1 , 2 , 3 , 2 , 1 ] i s a p a l i n d r o m e

2

(3)

1.4 Exercise 6

Write the static, recursive method isSorted which receives an integer array a and returns true if a is in increasing order, and false otherwise.

1.5 Exercise 5

Write the static, recursive method mergeTwo which receives two arrays of sorted integers and returns a merged, sorted array containing the elements of both. Your method should verify that both arrays are sorted first. If either of two arrays is not sorted, return an empty array. In the running example, we merge [1,2,5,7,9,12] with [4,8,9,10,42]

1 1 ) E n t e r a new a r r a y .

2 2 ) P r i n t c u r r e n t a r r a y .

3 3 ) R e v e r s e c u r r e n t a r r a y .

4 4 ) C o u n t o c c u r a n c e s .

5 5 ) Check i f a r r a y i s p a l i n d r o m e

6 6 ) Merge w i t h a n o t h e r s o r t e d a r r a y .

7 7 ) S e a r c h i n t h e s o r t e d a r r a y .

8 8 ) Q u i t

9 E n t e r a c h o i c e : 2

10 [ 1 , 2 , 5 , 7 , 9 , 1 2 ]

11

12 1 ) E n t e r a new a r r a y .

13 2 ) P r i n t c u r r e n t a r r a y .

14 3 ) R e v e r s e c u r r e n t a r r a y .

15 4 ) C o u n t o c c u r a n c e s .

16 5 ) Check i f a r r a y i s p a l i n d r o m e

17 6 ) Merge w i t h a n o t h e r s o r t e d a r r a y .

18 7 ) S e a r c h i n t h e s o r t e d a r r a y .

19 8 ) Q u i t

20 E n t e r a c h o i c e : 6

21 How l a r g e i s t h e a r r a y ? 5

22 E n t e r t h e a r r a y : 4 8 9 10 42

23 Merged : [ 1 , 2 , 4 , 5 , 7 , 8 , 9 , 9 , 1 0 , 1 2 , 4 2 ]

1.6 Exercise 6

Write the static, recursive method binarySearch which receives an array of sorted integers and an integer x. If x is in the array, the method returns the index of x. Otherwise, it returns -1.

You may assume that the array is sorted. Binary search works as shown in the example. If looking for the number 7 in the array [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:

1 S t e p 1 : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 1 0 ]

2 ˆ−−−−−−−−−−−−−− I s t h i s 7? No ! 7 m u s t be i n [ 6 , 7 , 8 , 9 ]

3 S t e p 2 : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 1 0 ]

4 ˆ−−−−−−−− I s t h i s 7? No ! 7 m u s t be i n [ 6 , 7 ]

5 S t e p 3 : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 1 0 ]

6 ˆ−−−−−−−−−−−− I s t h i s 7? No ! 7 m u s t be i n [ 7 ]

7 S t e p 4 : [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 1 0 ]

8 ˆ−−−−−−−−−− I s t h i s 7? Yes !

Note that we found 7 in four steps. An ordinary search would take 7 steps. Another example:

Finding 3 in [1, 2, 4, 5, 10, 21, 23, 24, 26]

1 S t e p 1 : [ 1 , 2 , 4 , 5 , 1 0 , 2 1 , 2 3 , 2 4 , 2 6 ]

3

(4)

2 ˆ−−−−−−−−−−−−−−− I s t h i s 7? No . 7 m u s t be i n [ 1 , 2 , 4 , 5 ]

3 S t e p 2 : [ 1 , 2 , 4 , 5 , 1 0 , 2 1 , 2 3 , 2 4 , 2 6 ]

4 ˆ−−−−−−−−−−−−−−−−−−−−− I s t h i s 7? No . 7 m u s t be i n [ 4 , 5 ]

5 S t e p 3 : [ 1 , 2 , 4 , 5 , 1 0 , 2 1 , 2 3 , 2 4 , 2 6 ]

6 ˆ−−−−−−−−−−−−−−−−−−− I s t h i s 7? No . 7 m u s t be i n [ 5 ]

7 S t e p 4 : [ 1 , 2 , 4 , 5 , 1 0 , 2 1 , 2 3 , 2 4 , 2 6 ]

8 ˆ−−−−−−−−−−−−−−−−− I s t h i s 7? No . 7 i s n o t i n t h e a r r a y !

Your method should receive an array, an integer and return the index if found, -1 if not found.

Example output of a program using binarySearch.

1 1 ) E n t e r a new a r r a y .

2 2 ) P r i n t c u r r e n t a r r a y .

3 3 ) R e v e r s e c u r r e n t a r r a y .

4 4 ) C o u n t o c c u r a n c e s .

5 5 ) Check i f a r r a y i s p a l i n d r o m e

6 6 ) Merge w i t h a n o t h e r s o r t e d a r r a y .

7 7 ) S e a r c h i n t h e s o r t e d a r r a y .

8 8 ) Q u i t

9 E n t e r a c h o i c e : 2

10 [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 1 0 ]

11

12 1 ) E n t e r a new a r r a y .

13 2 ) P r i n t c u r r e n t a r r a y .

14 3 ) R e v e r s e c u r r e n t a r r a y .

15 4 ) C o u n t o c c u r a n c e s .

16 5 ) Check i f a r r a y i s p a l i n d r o m e

17 6 ) Merge w i t h a n o t h e r s o r t e d a r r a y .

18 7 ) S e a r c h i n t h e s o r t e d a r r a y .

19 8 ) Q u i t

20 E n t e r a c h o i c e : 7

21 7 was f o u n d a t i n d e x 6

1.7 Exercise 7

Write a main program which provides the menu and prompts the user to choose from 1 to 8. Offer one choice for each recursive method and test them. Your program should quit when the user chooses to quit.

4

Referensi

Dokumen terkait

ﺔﻴﺑﺮﻌﻟا ءﺎﲰﻷا ﺔﻨﻣوﺮﻟ تﺎﻴﻣزراﻮﺧ 5 ٥ ﺎﻬﻨﻳﺎﺒﺗو ﰊﺎﺘﻜﻟا ﻞﻘﻨﻟا ﲑﻳﺎﻌﻣ ةﺮﺜﻛ ٥] ، ٦ ، ٧ ﻜﻟا ﺔﺒﺘﻜﻣ مﺎﻈﻧ كﺎﻨﻬﻓ ؛[ مﺎﻈﻧو ،سﺮﻐﻧﻮ ﺔﻴﳌﺎﻌﻟا ﺔﻤﻈﻨﳌا مﺎﻈﻧو ،ﺮﻬﻓ سﻮﻣﺎﻗ مﺎﻈﻧو ،ﺔﻴﻣﻼﺳﻹا فرﺎﻌﳌا ةﺮﺋاد

Despite many methods have been proposed so far to extract true pitch after tackling these issues [7, 14, 16, 17, and 18], a more noise-robust and efficient pitch tracking method is

ORIGINAL ARTICLE A three phase supplier selection method based on fuzzy preference degree Supratim Mukherjee *, Samarjit Kar National Institute of Technology, Durgapur 713 209, India

ORIGINAL ARTICLE Multibit quantization index modulation: A high-rate robust data-hiding method Amit Phadikar * Department of Information Technology, MCKV Institute of Engineering,

It is observed that the Time-Dependent RSB combined with the Elliptic Convolution of the shortest path method has no update time, and the Query Performance Loss QPL is reduced in planar

Protocol Method Strength Weakness PEAS Probe based; poisson distribution No neighbor node information Requires high node density; non-uniform energy consumption PECAS Similar to PEAS

In the algorithm CPSFC Li et al., 2012, a combina- tion of particle swarm optimization algorithm, chaotic local search, and gradient method is used to provide good perfor- mance in

In the fourth article, a new automated thresholding technique is proposed to detect defects and alleviate the limitations of both Otsu method in the case of multimode image histogram,