3 array operations

14
using Java 2015 Data Structure Prepared by: Mahmoud Rafeek Al-farra in Java 3. Array Operations

Upload: mahmoud-alfarra

Post on 15-Jan-2017

387 views

Category:

Education


0 download

TRANSCRIPT

Page 1: 3   Array operations

using Java

2015

Data Structure Prepared by: Mahmoud Rafeek Al-farra

in Java

3. Array Operations

Page 2: 3   Array operations

mfarra.cst.ps www.fb.com/MahmoudRFarra

Contents

Complexity

Insert in array (index, in order)

Delete from array (index, value)

Revision

Page 3: 3   Array operations

Introductionmfarra.cst.ps www.fb.com/MahmoudRFarra

Array’s

Operations

Insert

At suitable position

At index

Delete

Specific value

Value of index

Page 4: 3   Array operations

Insert value at indexmfarra.cst.ps www.fb.com/MahmoudRFarra

2 7 80 88 90 999 12 15 23 30 45 70 77

1 2 3 4 5 6 7 8 9 10 11 12 13

array

0

13

14

To insert value at index 4 (5’th position)

2 7 80 88 90 999 12 15 23 30 45 70 77

1 2 3 4 5 6 7 8 9 10 11 12 13

array

0 14

13

Page 5: 3   Array operations

Insert value at indexmfarra.cst.ps www.fb.com/MahmoudRFarra

1. public void insertValue(int[] arr, int value, int index)

2. {

3. for (int i = arr.Length - 1; i > index; i--)

4. arr[i] = arr[i - 1];

5. arr[index] = value;

6. }

In the previous code:if the loop start from the wanted index up to the length of array,

a logical error will be appeared, (What is it ?)

Page 6: 3   Array operations

Insert value at suitable positionmfarra.cst.ps www.fb.com/MahmoudRFarra

2 7 80 88 90 999 12 15 23 30 45 70 77

1 2 3 4 5 6 7 8 9 10 11 12 13

array

0

15

14

To insert the value at suitable position (in order)

2 7 80 88 90 999 12 15 23 30 45 15 77

1 2 3 4 5 6 7 8 9 10 11 12 13

array

0 14

1 2 3 4 5 6 7 8 9 9

array

0

2 7 80 88 90 999 12 23 30 45 15 77

1 2 3 4 5 6 7 8 9 10 11 12 13

99

14

Null

1. Search for the index of value 15.2. Shift the value to the left (to free the wanted position)3. Insert the new value (15)

Page 7: 3   Array operations

Insert value at suitable positionmfarra.cst.ps www.fb.com/MahmoudRFarra

1. public void insertValueInOrder(int[] arr, int value)

2. {

3. // to find the position of value

4. int i;

5. for ( i = 0; i < arr.Length-1; i++)

6. {

7. if (id[i] > value)

8. {

9. break;

10. }

11. }

12. // shift value to free wanted position

13. for (int j = arr.Length - 1; j > i; j--)

14. arr[j] = arr[j - 1];

15. arr[i] = value;

16. }

Self Study:What about, if all the values in array is smaller than the new value?

Page 8: 3   Array operations

Delete value from indexmfarra.cst.ps www.fb.com/MahmoudRFarra

2 7 80 88 90 999 12 15 23 30 45 70 77

1 2 3 4 5 6 7 8 9 10 11 12 13

array

0

15

14

To delete the value of 5’th cell

2 7 80 88 90 999 12 15 23 30 45 15 77

1 2 3 4 5 6 7 8 9 10 11 12 13

array

0 14

1 2 3 4 5 6 7 8 9 9

array

0

2 7 80 88 90 999 12 23 30 45 15 77

1 2 3 4 5 6 7 8 9 10 11 12 13

99

14

Null

Page 9: 3   Array operations

Delete value from indexmfarra.cst.ps www.fb.com/MahmoudRFarra

1. public void deleteValue(int[] arr, int index)

2. {

3. // overwrite on position of value

4. for (int k =index ; k < id.Length-1; k++)

5. id[k] = id[k + 1];

6. }

Page 10: 3   Array operations

To delete the value

1. Search for the index of value 15.

2. Overwrite on the index of value from it the last position.

Delete valuemfarra.cst.ps www.fb.com/MahmoudRFarra

2 7 80 88 90 999 12 15 23 30 45 70 77

1 2 3 4 5 6 7 8 9 10 11 12 13

array

0

15

14

2 7 80 88 90 999 12 15 23 30 45 15 77

1 2 3 4 5 6 7 8 9 10 11 12 13

array

0 14

1 2 3 4 5 6 7 8 9 9

array

0

2 7 80 88 90 999 12 23 30 45 15 77

1 2 3 4 5 6 7 8 9 10 11 12 13

99

14

Null

Page 11: 3   Array operations

Delete valuemfarra.cst.ps www.fb.com/MahmoudRFarra

1. public void deleteValue(int[] arr, int value)

2. {

3. // to find the position of value

4. int i;

5. for ( i = 0; i < arr.Length-1; i++)

6. {

7. if (id[i] == 12)

8. {

9. break;

10. }

11. }

12. // overwrite on position of value

13. for (int k =i ; k< id.Length-1; k++)

14. id[k] = id[k + 1];

15. }

Self Study:What is the result, if the wanted value does not found in array ?

Page 12: 3   Array operations

Time Complexity mfarra.cst.ps www.fb.com/MahmoudRFarra

To insert on value in specific index in array with size

(n), we need to shift all values of array (worst state),

this mean the time complexity is O(n).

What about delete ?

Page 13: 3   Array operations

Time Complexity mfarra.cst.ps www.fb.com/MahmoudRFarra

To insert on value in suitable index in array with size

(n), we need to:

1. Search for the suitable position by linear approach

(O(n)).

2. Shift all values of array (worst state), this mean the

time complexity is O(n).

The total complexity O(2n).

What about delete ?

Page 14: 3   Array operations

using Java

2015

FB: M a h m o u d R F a r r a

YouTube: M a h m o u d R F a r

SlidesShare: mralfarra

Thank you