You are on page 1of 76

-20

www.kiriakougr.weebly.com
(data)


(information)


( )



.
3.2 | + =


(nodes)

1. (access)
2. (insertion)
3. (deletion)
4. (searching)
5. (sorting)
6. (copying)
7. (merging)
8. (separation)

.

,
, ,
.


3.2 | + =

,

3

.
1976 Wirth (
Pascal)




3
3.2 | + =

1
3

4
6

7
8

0
1

3
1
4
1
3.2 | + =

3

:
:
: 1992
::
2461022555
::
24
: 1992
::
2461022666
::
42
: 1992
::
2461022777
::
52
: 1992
: 2461022888
: 34
3
3.2 | + =


,




(dynamic
memory allocation)




(indexes)
3.3 |



,
.

.
9.1 |


,
.
9



.




9.1 |

: [20]
: [20]
9
9.1 |
:


17 [1]

19 [2]
, 30
21 [3]
9

i-
20 [4]
[i]
19 [5]
15 [6]
10 [7]
: [30],
9 [8]
8 [9]

1 30
[]
_
_

9.1 | , 30, ,
:

.
<- 0
1 30 ,

<- +
9

.
_
<- /30
.. .


,
,
. 30
, -1, 2,...,
30.
,
.

,
.
1
9.1 |
:


: [30], ,
: i,

9

<- 0
i 1 30

[i]
<- + [i]
_
<- /30
<- 0
i 1 30
[i] <
<- +1
_
_
:,
,
_
9.1 | :

,
.
.

;


.
9.2 | :




( ) .
9



.
9.2 |




3.

[500]

11
.
3.3 |

_3
// //
3

500
0
i 1
+ [i]
_
/
_11 0
__ 0
i 1
([i] < 11)
_11 _11 + 1
_
([i] < / 2)
__ __ + 1
_
_
_11, __
_3
4.




.
3.3 |

_4
3

// , //
_ 0
_ 0
_0 0

i 1
[i] > 0
_ _ + 1
_ [i] < 0
_ _ + 1

_0 _0 + 1
_
_

" :", _
" :", _

_4


3.3 |





1.

table 100 .
.
3.3 |

_
3

// table //
Min table[1]
i 2 100
table[i] < Min Min table[i]
_
//Min//
_
5.


.
3.3 |
3

_
// , //
[1]
1
i 2 N
> [i]
A[i]
i
_
_
" ", , "
",
_


3.3 |





(searching)

.


3.6 |

.
.

3

.

(sequential) (linear) .


.

3.6 |

,
.
:
.
( n <= 20).
.

.
_
i 1 10

[i]
_
3.6 |

<-
i <- 1
( = ) (i10)
3

[i] =
<-

i <- i + 1
_
_
=




_
_

.


.


3.6 |

_
i 1 10

3

[i]
_
k <- 0
i 1 10
[i] =
k <- k + 1
_
_
k 0
,k,


_
_
,
.
:
.
( n <= 20).
.


3.6 |

- - , .

.
3


:

.
, <
. (
1 ).
( 2 ).

.

> .


:

.
, <
. (
3.6 |

1 ).
( 2 ).

3

.

> .


.
1.
.
_1

: [20], KEY, _, _, _, i

i 1 20
[i]
3.6 |

_
' .'
KEY
_ <- 1
3

_ <- 20
_ <- (_ + _) div 2
_ <= _ [_] <> KEY
KEY < [_]
_ <- _ - 1

_ <- _ + 1
_
_ <- (_ + _) div 2
_

[_] = KEY
' ', _

' '
_

_ _1
2
.
_2

: [20], KEY, _, _, _, i

i 1 20
[i]
3.6 |

_
' .'
KEY
_ <- 1
3

_ <- 20
_ <- (_ + _) div 2
_ <= _ [_] <> KEY
KEY < [_]
_ <- _ + 1

_ <- _ - 1
_
_ <- (_ + _) div 2
_

[_] = KEY
' ', _

' '
_

_ _2
. [69]

4.9.1. 1.
, 100 .
:
i. .
ii. 1 100 .
iii. 100 1 .
iv. .
v. .
vi.
.
vii. 10 .
viii.
ix. 50
50 ,
" ".
x. " ",
.
xi. .
xii. 42 .
xiii. .
xiv. .


3.3 |






(sorting) (ordering).
(ascending sequence)
.

.

3.7 |

,
, , ,

.
3


a1, a2, ..., an
(permutation) ,
ak1, ak2, ..., akn ,
(ordering function), f, : f(ak1)
f(ak2) ... f(akn)


,
(descending sequence) .

(straight exchange sort)
,
.
:
3.7 |


.

(bubbles)
,

.
(bubblesort).

-

.
1 2 3 4 1

23 1 23 15 15 15 15

15 2 15 2 23 8 8 8

8 8 3 8 3 23 10 10

10 10 10 4 10 4 23 0

0 0 0 0 5 0 23


1 1 2 3 2

15 1 15 8 8 8

8 2 8 2 15 10 10

10 10 3 10 3 15 0

0 0 0 4 0 15

23 23 23 23 23


2 1 2 3

8 1 8 8 8

10 2 10 2 0 0

0 0 3 10 10

15 8 8 15

23 23 23 23


3 1 4

8 1 8 0

0 2 0 8

10 10 10

15 15 15

23 23 23


__
// , //
3.7 |

1 - 1
3

1 - 1
[] > [ + 1]
[], [ + 1]
_
_
_
__
___2
3.7 |

// , //
3

1 - 1
1 -
[] > [ + 1]
[], [ + 1]
_
_
_
___2
1 2 3 4 1

23 23 23 23 1 23 0

15 15 15 2 15 2 0 23

0 0 3 0 3 0 15 15

10 4 10 4 8 8 8 8

8 5 8 10 10 10 10


1 1 2 3 2

0 0 0 0 0

23 23 23 2 23 8

15 15 3 15 3 8 23

8 4 8 4 8 15 15

10 5 10 10 10 10


2 1 2 3

0 0 0 0

8 8 8 8

23 23 3 23 10

15 4 15 4 10 23

10 5 10 15 15


3 1 4


0 0 0

8 8 8

10 10 10

23 4 23 15

15 5 15 23


23 23 23 23 1 23 0
15 15 15 2 15 2 0 23
0 0 3 0 3 0 15 15
10 4 10 4 8 8 8 8
8 5 8 10 10 10 10

0 0 0 0
23 23 2 23 8
15 3 15 3 8 23
4 8 4 8 15 15
5 10 10 10 10

0 0 0
8 8 8
23 3 23 10
4 15 4 10 : 23
5 10 15 15
5
0
4 . 0
8 1 4 8
10 2 3 10
4 23 3 2 15
5 15 4 1 23
__
// , //
3.7 |

1 - 1
3

2 _ -1
[ - 1] > []
[ - 1], []
_
_
_
__
___2
3.7 |

// , //

1 - 1
3

+ 1 _ -1
[ - 1] > []
[ - 1], []
_
_
_
___2
2
3.7 |

_ -1
[-1]>[]
3

[-1], []
_
_
_

(bubbles)
,

.
(bubblesort).
3.7 |
3

https://www.youtube.com/watch?v=ly
ZQPjUT5B4

https://www.youtube.com/watch?v=Mt
crEhrt_K0

, :
52, 12, 71, 56, 5, 10, 19, 90 45.
.
,

. (i).
3.7 |
3

// table, n //
i 2 n
j n i _ -1
table[j-1] > table[j]
table[j-1], table[j]
3.7 |

!

_ ,
_ ,
_ : table[j-1] < table[j]
3

// table //

SOS

" table[j-1],
table[j]"
.
:
temp table[j-1]
table[j-1] table[j]
table[j] temp
4.6.1.1. (Bubblesort)


.


.
3.7 |
3
3
3.7 |


.

.
"
" (quicksort).
3.7 |


.
3

Quick-sort-
with Hungarian folk
dance


https://Selection Sort ( ).



.

( , . 3.7)
:
_ -
-
.
, ,
_


= 10 .
3.7 |


: i, j, , table[], , temp
.
:

3

i 1
table[i]
_
i 1 - 1
<- i
j i + 1
table[j] < table[] !
<- j
_
_
temp <- table[i]
table[i] <- table[]
table[] <- temp
_
i 1
table[i]
_
_ ( , . 3.7)
. [69]

4.9.1. 1.
, 100 .
:
i. .
ii. 1 100 .
iii. 100 1 .
iv. .
v. .
vi.
.
vii. 10 .
viii.
ix. 50
50 ,
" ".
x. " ",
.
xi. .
xii. 42 .
xiii. .
xiv. .

9.1 | , ,
, 2 100.


.
,
.
,
, ,
.


: i, j, , [100], , _2,
9.1 |
: , _,

!
" ( 100)"

i 1
" ", i, "- "
[i]
9

_
!
<- 0
_2 <- 0
i 1
<- + [i]
_2 <- _2 + [i]^2
_
!
<- /
!
_ <- _(_2/ - ^2)
!
i 2
j i _ -1
9.1 |
[j - 1] > [j]
! j j-1
<- [j - 1]
[j - 1] <- [j]
[j] <-
_
_ ! j
9

_ ! i
!
mod 2 = 0
<- ([ div 2] + [( div 2) + 1])/2

<- [( + 1) div 2]
_
!
""
"============"
" =",
" = ",
" = ", _
" = ",
_
9.1 | :

,
.
.

;


.
9.2 | :




( ) .
9



.
9.4 |





3/ . 87
,
9.4 |
.
.
100 .


.

, , ,
, +
.
i, j k
9.4 | , . :

.
.
.
! 1 2

9


_ = 10
_ = 5

: [_], [_], [_ + _], I, J, , ,
,
!
!

!
" (<100)
=", _

I 1
[I]
_

" (<100)
=", _

I 1
[I]
_
! 2 2
!
9.4 | I <- 1 ! I
J <- 1 ! J
<- 1 !
I <= J <=
!
[I] < [J]
[] <- [I]
<- + 1
I <- I + 1


9

[] <- [J]
<- + 1
J <- J + 1
_
_
!
I >
+
[] <- [J]
J <- J + 1
_

+
[] <- [I]
I <- I + 1
_
_
!
" "
1 +
[]
_
_
3
3.3 |

:
2 2
3.3 |

26 26 24 30 25
, 4 8

3

24 24 2
23 28
2
24
2 7
[4,7] 2 3
27 28 24 32 28
5 1
22 24
1
20 25
2
22
9 5


, ,
(square)
n x n.
2.
,

.
table m n .



, .

.
_
3.3 |

// m, n, table //
sum 0
3

i 1 m
row[i] 0
_
j 1 n
col[j] 0
_
i 1 m
j 1 n
sum sum + table[i,j]
row[i] row[i] + table[i,j]
col[j] col[j] + table[i,j]
_
_
// row, col, sum //
_
5x5.
,
row ,
col
. sum -
.
3.3 |
3


,
(stack) (queue),

,
.
3

( 30 10 ).
, ,
9.3 |

.
_2

_2

= 3
= 2

= 3
: [, ], [],
= 2
9

: i, j,


!
i 1
: [, ],
j 1
[],
" ", i, " ", j, " :"
[i, j]
: i, j,
_
_

!
j 1
!
<- 0


ii
1
1
<- j]
+ [i,
j 1
_
[j] <- /
" ", i, "
_
j 1
",
j,<- "
0 :"
i 1

[i,
[i, j] < [j] j]
<- + 1
_
_
_
_
" ", j, " :", [j]
!
"
_
:",

_
_
, ,
,
9.3 |


[4, 30, 3]
9
!!!

You might also like