void sort(int a[], int n) - PowerPoint PPT Presentation

About This Presentation
Title:

void sort(int a[], int n)

Description:

Title: Last modified by: Document presentation format: Company: – PowerPoint PPT presentation

Number of Views:79
Avg rating:3.0/5.0
Slides: 38
Provided by: acjp
Category:
Tags: bucket | int | sort | void

less

Transcript and Presenter's Notes

Title: void sort(int a[], int n)


1
????????????
  • ?11?
  • ??
  • ???????,?????,??????

2
?????(1)
???75.3
  • ????????????????????,???for????? i ????a??????.
  • ??????n?6??,??a??????????? 8, 4, 3, 9, 1, 5
    ????????.

void sort(int a, int n) int i, j
for (i 0 i lt n - 1 i) for (j n -
1 j gt i j--) if(aj gt aj-1)
aj?aj-1???
??!
3
??(1)
  • a012345
  • ??? 8, 4, 3, 9, 1, 5
  • i0?? 9, 8, 4, 3, 5, 1
  • i1?? 9, 8, 5, 4, 3, 1
  • i2?? 9, 8, 5, 4, 3, 1
  • i3?? 9, 8, 5, 4, 3, 1
  • i4?? 9, 8, 5, 4, 3, 1

??
4
?????
  • ??????????
  • ???????
  • ?????
  • ??????

5
??????? (bucket sort)
  • ?? ?????(bin sort) ????
  • ??? O (n)
  • ???????????????
  • n????????0??m-1???????????

????
0
m-1
1
2
6
??????????
  • 1.?k????????(????Bk?????k?0?k?m-1)????????Ai?B
    Ai?????
  • BAi Ai
  • 2.?????B0, B1, ,Bm-1????????

A 0, m-1, , 2
m-1
0
1
B0
Bm-1
B1
B2
7
???????????
????B
?? A
0
1
??????????? ????????, ??????????
A2
0
??? ???????
1
4
A0
1
2
0
A4
2
3
6
3
4
2
A1
4
5
??????
A3
6
8
??????????
i??????????? ?????????? ?????????
????B
?? A
0
A2
1
A8
A6
A4
A0
2
A9
3
??
4
A7
5
A5
6
A3
A1
9
??????????(??1)
????B ????
????B
?? A
0
1
2
??????
3
4
5
6
10
??????????(??2)
????Bi?Bi1?????? (CONCATENATE)???
B
0
1
2
?????,???????????,????????,?????????????
3
4
5
6
11
??????????
  • ???O(n)
  • ??????????????.
  • (???????????n???)
  • ?????? m ??????????????.???m?????????????.
  • ?
  • int?4???(32???) 21474836482147483647
  • ?????40??

12
?????(radix sort)
  • radix ??.?????????.
  • 10??????10 (0??9??)
  • 16??????16 (0??15(F)??)
  • ??????????,?????????????,?????????,???????????????
    ?
  • ?????????,???O(n)?????????????

13
???????
??????????? ??????????
??10?,3????????
???? B
???? ???? ???
???? ??
14
???????
??????????? ??????????
??10?,3????????
???? B
100 602
112 517
???? ???? ???
???? ??
123 128
230 231
454
362
90
15
???????
??????????? ??????????
??10?,3????????
???? B
90
100 112 123 128
???? ???? ???
???? ??
230 231
362
454
517
602
16
??????????????
  • k???????????i???????????????????????????????
  • ???????????????????????

k3
??? ??? ???
? i
17
?????(lexicographical order)
  • ?? x a1a2ak? y b1b2bk???????.
  • ??i????ajbj j1,2,, i-1????ailtbi????xlty????????
    ??????????????????
  • ? abltba, abdltaca, bc ltbcd
  • ??lt??, ???lt???, ?? lt???

???
18
?(k3)
???????????
(?? 128) ??????????????????
0
1
2
0
1
2
0
1
2
0
1
2
a
n
d
m
a
p
a
n
d
c
a
t
c
a
t
a
n
y
t
h
e
k
e
y
b
u
g
p
u
t
t
h
e
c
a
t
a
n
y
d
g
d
g
i
i
k
e
y
a
n
d
f
o
x
f
o
x
a
n
y
k
e
y
m
a
p
f
o
x
m
a
p
p
u
t
b
u
g
b
u
g
t
h
e
d
g
p
u
t
i
19
???
  • ????????????????????????
  • ??4???
  • (4?? 13, 12, 11, 22, 23?
  • ??????????)

20
????????
  • ??? k ????,???????O(k n)
  • k????? n ?????????O(n)
  • ??????????????.
  • (???????????n???)
  • ?????????????,???????????????????(???????)
  • ???????????????

21
??
??3?????????????????? ???????????
( J O Y ), ( R E D ), ( R U N ), ( M I D )
22
??
( J O Y ), ( R E D ), ( R U N ), ( M I D )
1??
2??
3??
( J O Y )
( R E D )
( R E D )
( M I D )
( M I D )
( M I D )
( R E D )
( R U N )
( J O Y )
( R U N )
( R U N )
( J O Y )
23
??????(heap sort)(p.94)
  • ??????????????????????
  • ??? O (n log n)
  • ??? ????????????????

??????? ??????
??????? ??????
10
3
5
9
8
9
6
8
9
10
6
3
7
6
9
10
18
2
4
1
24
?????????
  • 1.???(????)???(?????????????)
  • 2.????????????????
  • ??????????????????
  • ????-1?????????????

????? ????
???L 2,9,5,6,
9
2
5
6
25
????????
  • ???? 10 6 9 5 15 15 12 3 18 9 8 11 9 20 10
  • ???? 3 5 9 6 8 9 10 10 18 9 15 11 15 20 12

????
????
26
????????
  • ?????????????????????????????,????????????????

10
? a0
??? n 15
?????? ?????
6
9
5
15
15
12
? an/2-1 (a6)
3
18
9
8
11
10
9
20
? an-1 (a14)
27
????????
10
? a0
6
9
8
9
3
10
5
15
15
12
18
9
11
20
28
????????
10
? a0
9
3
8
10
9
5
6
15
15
18
9
11
20
12
29
????????
??????????????????
0
n-1
a
3 5 9 6 8 9 10 10 18 9 15 11 15 20 12
30
???????(1)
  • ??????????????

0
n-1
a
12 5 9 6 8 9 10 10 18 9 15 11 15 20 3
31
???????(2)
????? ???? ?????
  • ????????????

?????????, 2?????? ?????? ?????????
????????????
n-1
0
n-2
12 5 9 6 8 9 10 10 18 9 15 11 15 20
3
a
5
6
10
12
32
???????(3)
  • ??????????????

0
n-1
a
5 6 9 10 8 9 10 12 18 9 15 11 15 20 3
20
5
33
???????(4)
  • ????????????

????????????
0
n-2
n-1
n-3
a
34
??????
?????????? ? ?????
6
8
3
9
10
5
9
9
35
??????
?????????????
6
8
3
9
10
5
9
9
36
?????????
  • ???????????????????????????

?????????,???????? ???????
?????????,???????? ???????
37
??????????
swap (a1, ai)
O (1)
????????
downMin ()
O ( log (i-1) )
??????
???????????????? ? n-1 ????? ???? lt
(n-1)log(n-1) ? n log n
????????? ? ??O (n log n)
38
?????
(?1)??5???? 4, 7, 5, 6, 7?????????????Bi( 0 ?
i lt 10) ?????????????????????
(?2)??3?????????????????????????????
(B U T ), ( F A N ), ( A N Y ), ( K I D )
Write a Comment
User Comments (0)
About PowerShow.com