Introduction ttoo PPrrooggrraammmmiinngg 
LLeeccttuurree 1122
Today’s LLeeccttuurree IInncclluuddeess 
 SSttrriinnggss (( cchhaarraacctteerr aarrrraayyss )) 
 AAllggoorriitthhmmss uussiinngg aarrrraayyss 
 MMuullttii--ddiimmeennssiioonnaall aarrrraayyss
cchhaarr nnaammee 
[[ 110000 ]] ;;
00
IInn CC wwee hhaavvee UUsseedd 
nn NNeeww LLiinnee 
tt TTaabb CChhaarraacctteerr 
00 NNuullll CChhaarraacctteerr 
AAllll CC ssttrriinnggss aarree tteerrmmiinnaatteedd bbyy NNuullll cchhaarraacctteerr
Character AArrrraayy iinn 
MMeemmoorryy 
cchhaarr nnaammee [[ 110000 ]] ;; 
ccoouutt <<<< ““ PPlleeaassee eenntteerr yyoouurr nnaammee 
”” ;; 
cciinn >>>> nnaammee ;;
Initializing aann AArrrraayy 
IInniittiiaalliizziinngg aarrrraayy ooff iinntteeggeerrss 
iinntt cc [[ 1100 ]] == {{ 11,,22,,3,,4,,5,,6,,7,,8,,9,,1100 }} ;; 
iinntt cc [[ ]] == {{ 11,,22,,3,,4,,5,,6,,7,,8,,9,,1100 }} ;; 
FFoorr cchhaarraacctteerr aarrrraayyss 
cchhaarr nnaammee [[ 110000 ]] == {{ ‘‘aa’’,,bb’’,,’’cc’’,,’’00’’,,’’11’’ }} ;; 
cchhaarr nnaammee [[ 110000 ]] == ““aabbcc0011““ ;; 
cchhaarr nnaammee [[ ]] == ““HHeelllloo WWoorrlldd““ ;;
CChhaarraacctteerr AArrrraayyss 
TToo rreeaadd nnaammee ffrroomm kkeeyybbooaarrdd aanndd 
ddiissppllaayy iitt oonn ssccrreeeenn 
cchhaarr nnaammee [[ 110000 ]] ;; 
ccoouutt <<<< ““ PPlleeaassee eenntteerr yyoouu nnaammee”” ;; 
cciinn >>>> nnaammee ;; 
ccoouutt <<<< nnaammee ;;
CChhaarraacctteerr AArrrraayyss 
DDiissppllaayyiinngg nnaammee oonn ssccrreeeenn uussiinngg lloooopp 
ffoorr (( ii == 00 ;; ii << 110000 ;; ii ++++ )) 
{{ 
ccoouutt <<<< nnaammee [[ ii ]] ;; 
}}
Comparing TTwwoo aarrrraayyss 
AArrrraayy ssiizzee sshhoouulldd bbee eeqquuaall 
Condition : 
iinntt eeqquuaall == 00 ;; 
iinntt nnuumm11 [[ 110000 ]] ,, nnuumm22 [[ 110000 ]] ;; 
ffoorr (( ii == 00 ;; ii << 110000 ;; ii ++++ )) 
{{ 
iiff (( nnuumm11 [[ ii ]] !!== nnuumm22 [[ ii ]] )) 
{{ 
eeqquuaall == 11 ;; 
bbrreeaakk ;; 
}} 
}} 
iiff (( eeqquuaall ====11 )) 
ccoouutt <<<< ““ TThhee aarrrraayyss aarree nnoott eeqquuaall”” ;; 
eellssee 
ccoouutt <<<< ““ TThhee aarrrraayyss aarree eeqquuaall”” ;;
CCoommppaarriinngg TTwwoo 
AArrrraayyss 
AAZZMMAATT 
HHAAMMEEEEDD 
AAzzmmaatt HHaammeeeedd
EExxeerrcciissee 
 IInnppuutt yyoouurr nnaammee aanndd ddiissppllaayy iitt iinn 
rreevveerrssee oorrddeerr 
 DDeetteerrmmiinnee tthhee lleennggtthh ooff cchhaarraacctteerr 
aarrrraayy
SSoorrttiinngg 
 BBuubbbbllee SSoorrtt 
 QQuuiicckk SSoorrtt
BBrruuttee--FFoorrccee 
TTeecchhnniiqquuee 
44 
2233 
9 
6677 
[0] 
[1] 
[2] 
[16] 
[99] 
11
SSwwaappppiinngg 
6666 
6666 
4444 
3333 
33 
110000 
Memory 
Location 
[0] 
[1] 
[2] 
[16] 
[99]
SSwwaappppiinngg TTwwoo 
NNuummbbeerrss 
iinntt nnuumm [[ ]] ;; 
iinntt xx ;; 
xx == nnuumm [[ 00 ]] ;; 
nnuumm [[ 00 ]] == nnuumm [[ 1155 ]] ;; 
nnuumm [[ 1155 ]] == xx ;;
BBiinnaarryy SSeeaarrcchh 
AAllggoorriitthhmmss 
DDiivviiddee aanndd CCoonnqquueerr rruullee 
11 22 33 44 55 66 77 88 
11 22 33 44 
55 66 77 88 
11 22 33 44
Binary SSeeaarrcchh AAllggoorriitthhmm 
 IIff wwee tthhiinnkk aabboouutt iitt ,, iitt iiss 
llooggnn lloogg22 
 TToottaall aarrrraayy ssiizzee wwiillll bbee 22nn aanndd nnuummbbeerr 
ccaann bbee ffoouunndd iinn nn ttiimmeess 
 IIff 11000000 nnuummbbeerrss tthheenn 1100 ttrriieess aarree mmaaxx 
221100 == 11002244
Is divide and conquer the ffaasstteesstt wwaayy,, aallll 
tthhee ttiimmee,, ooff sseeaarrcchhiinngg ffoorr aa nnuummbbeerr iinn aa lliisstt 
?? 
11 Linear Search ? 
22 
33 
110000 
Binary Search ? 
Suppose they are Random 
Suppose they are Ordered 
Suppose they are mixed-up
FFuunnccttiioonnss aanndd 
AArrrraayyss
Sending AArrrraayyss iinnttoo 
AAnnootthheerr FFuunnccttiioonnss 
 NNaammee ooff tthhee 
aarrrraayy 
 SSiizzee ooff tthhee aarrrraayy
EExxaammppllee 11 
Declaration 
cchhaarr nnaammee [[ 110000 ]] ;; 
Function Call 
rreevveerrssee (( nnaammee ,, 110000 )) ;;
EExxaammppllee 11 
Prototype 
vvooiidd rreevveerrssee (( cchhaarr [[ ]] ,, iinntt )) ;; 
Definition 
vvooiidd rreevveerrssee (( cchhaarr cchhaarraacctteerrss [[ ]] ,, iinntt aarrrraayySSiizzee)) 
{{ 
rreevveerrssee tthhee cchhaarraacctteerr ssttrriinngg;; 
}}
EExxaammppllee 11 
mmaaiinn (( )) 
{{ 
cciinn >>>> nnaammee [[ ]] ;; 
rreevveerrssee (( cchhaarraacctteerr [[ ]] ,, aarrrraayySSiizzee )) ;; 
ccoouutt <<<< nnaammee [[ ]] ;; 
}} 
What will it 
Show ?
CCaallll bbyy RReeffeerreennccee 
&& AAddddrreessss OOppeerraattoorr 
** PPooiinntteerr OOppeerraattoorr 
IInn ccaassee ooff aarrrraayyss ,, ccaallll bbyy rreeffeerreennccee iiss ddeeffaauulltt
X iiss aa vvaarriiaabbllee wwhhiicchh iiss aa llooccaattiioonn iinn tthhee 
mmeemmoorryy 
NNaammee [[ ]] iiss aann aarrrraayy 
-- -- -- -- -- -- -- -- 
Array called Name 
Starting 
address 
Memory 
name
EExxaammppllee 22 
vvooiidd ff (( iinntt [[ ]] ,, iinntt )) ;; 
mmaaiinn (( )) 
{{ 
iinntt nnuummbbeerrss [[ 110000 ]] ;; 
ff (( nnuummbbeerrss ,, 110000)) ;; 
ffoorr (( iinntt ii == 00 ;; ii << 110000 ;; ii ++++)) 
ccoouutt <<<< nnuummbbeerrss [[ ii ]] ;; 
}}
EExxaammppllee 22 
vvooiidd ff (( iinntt xx [[ ]] ,, iinntt aarrrraayySSiizzee )) 
{{ 
iinntt ii ;; 
ffoorr (( ii == 00 ;; ii << aarrrraayySSiizzee ;; ii ++++)) 
xx [[ ii ]] == ii ;; 
}}
ff (( xx [[ 33 ]] )) ;; 
EExxeeccuutteedd wwiitthh ccaallll bbyy 
vvaalluuee,, nnoott bbyy rreeffeerreennccee
 WWhheenneevveerr aa vvaarriiaabbllee iiss ppaasssseedd ,, iitt 
iiss ppaasssseedd bbyy vvaalluuee 
 WWhheenneevveerr yyoouu ppaassss aann aarrrraayy ttoo 
ffuunnccttiioonn,, iitt iiss ccaalllleedd bbyy rreeffeerreennccee
VVeeccttoorr 
22 DDiimmeennssiioonnaall 
33 DDiimmeennssiioonnaall 
DDoott PPrroodduucctt 
VVeeccttoorr PPrroodduucctt
MMaattrriixx 
Rows 
Columns
TTwwoo DDiimmeennssiioonnaall 
AArrrraayy 
iinntt xx [[ 22 ]] [[ 33 ]] ;;
EExxaammppllee 33 
iinntt mmaaxxRRoowwss == 22;; 
iinntt mmaaxxCCoollss == 33 ;; 
iinntt mmaattrriixx [[ 22]] [[ 33 ]];; 
iinntt rrooww ,, ccooll ;; 
ffoorr (( rrooww == 00 ;; rrooww << mmaaxxRRoowwss ;; rrooww ++++ )) 
{{ 
ffoorr (( ccooll == 00 ;; ccooll << mmaaxxCCoollss ;; ccooll ++++ )) 
{{ 
ccoouutt <<<< ““PPlleeaassee eenntteerr vvaalluuee ooff ””<<<< rrooww <<<< ““ ““ <<<< ccooll;; 
cciinn >>>> mmaattrriixx [[ rrooww ]] [[ ccooll ]] ;; 
}} 
}}
55 22 99 
55 22 99 
77 00 44 
After first outer loop 
After second outer 
loop 
Input 
Input 
[0] 
[0] 
[1]
TThhrreeee DDiimmeennssiioonnaall 
AArrrraayyss 
iinntt xx [[ ]] [[ ]] [[ ]] ;;

CS201- Introduction to Programming- Lecture 12

  • 1.
  • 2.
    Today’s LLeeccttuurree IInncclluuddeess  SSttrriinnggss (( cchhaarraacctteerr aarrrraayyss ))  AAllggoorriitthhmmss uussiinngg aarrrraayyss  MMuullttii--ddiimmeennssiioonnaall aarrrraayyss
  • 3.
  • 4.
  • 5.
    IInn CC wweehhaavvee UUsseedd nn NNeeww LLiinnee tt TTaabb CChhaarraacctteerr 00 NNuullll CChhaarraacctteerr AAllll CC ssttrriinnggss aarree tteerrmmiinnaatteedd bbyy NNuullll cchhaarraacctteerr
  • 6.
    Character AArrrraayy iinn MMeemmoorryy cchhaarr nnaammee [[ 110000 ]] ;; ccoouutt <<<< ““ PPlleeaassee eenntteerr yyoouurr nnaammee ”” ;; cciinn >>>> nnaammee ;;
  • 7.
    Initializing aann AArrrraayy IInniittiiaalliizziinngg aarrrraayy ooff iinntteeggeerrss iinntt cc [[ 1100 ]] == {{ 11,,22,,3,,4,,5,,6,,7,,8,,9,,1100 }} ;; iinntt cc [[ ]] == {{ 11,,22,,3,,4,,5,,6,,7,,8,,9,,1100 }} ;; FFoorr cchhaarraacctteerr aarrrraayyss cchhaarr nnaammee [[ 110000 ]] == {{ ‘‘aa’’,,bb’’,,’’cc’’,,’’00’’,,’’11’’ }} ;; cchhaarr nnaammee [[ 110000 ]] == ““aabbcc0011““ ;; cchhaarr nnaammee [[ ]] == ““HHeelllloo WWoorrlldd““ ;;
  • 8.
    CChhaarraacctteerr AArrrraayyss TToorreeaadd nnaammee ffrroomm kkeeyybbooaarrdd aanndd ddiissppllaayy iitt oonn ssccrreeeenn cchhaarr nnaammee [[ 110000 ]] ;; ccoouutt <<<< ““ PPlleeaassee eenntteerr yyoouu nnaammee”” ;; cciinn >>>> nnaammee ;; ccoouutt <<<< nnaammee ;;
  • 9.
    CChhaarraacctteerr AArrrraayyss DDiissppllaayyiinnggnnaammee oonn ssccrreeeenn uussiinngg lloooopp ffoorr (( ii == 00 ;; ii << 110000 ;; ii ++++ )) {{ ccoouutt <<<< nnaammee [[ ii ]] ;; }}
  • 10.
    Comparing TTwwoo aarrrraayyss AArrrraayy ssiizzee sshhoouulldd bbee eeqquuaall Condition : iinntt eeqquuaall == 00 ;; iinntt nnuumm11 [[ 110000 ]] ,, nnuumm22 [[ 110000 ]] ;; ffoorr (( ii == 00 ;; ii << 110000 ;; ii ++++ )) {{ iiff (( nnuumm11 [[ ii ]] !!== nnuumm22 [[ ii ]] )) {{ eeqquuaall == 11 ;; bbrreeaakk ;; }} }} iiff (( eeqquuaall ====11 )) ccoouutt <<<< ““ TThhee aarrrraayyss aarree nnoott eeqquuaall”” ;; eellssee ccoouutt <<<< ““ TThhee aarrrraayyss aarree eeqquuaall”” ;;
  • 11.
    CCoommppaarriinngg TTwwoo AArrrraayyss AAZZMMAATT HHAAMMEEEEDD AAzzmmaatt HHaammeeeedd
  • 12.
    EExxeerrcciissee  IInnppuuttyyoouurr nnaammee aanndd ddiissppllaayy iitt iinn rreevveerrssee oorrddeerr  DDeetteerrmmiinnee tthhee lleennggtthh ooff cchhaarraacctteerr aarrrraayy
  • 13.
    SSoorrttiinngg  BBuubbbblleeSSoorrtt  QQuuiicckk SSoorrtt
  • 14.
    BBrruuttee--FFoorrccee TTeecchhnniiqquuee 44 2233 9 6677 [0] [1] [2] [16] [99] 11
  • 15.
    SSwwaappppiinngg 6666 6666 4444 3333 33 110000 Memory Location [0] [1] [2] [16] [99]
  • 16.
    SSwwaappppiinngg TTwwoo NNuummbbeerrss iinntt nnuumm [[ ]] ;; iinntt xx ;; xx == nnuumm [[ 00 ]] ;; nnuumm [[ 00 ]] == nnuumm [[ 1155 ]] ;; nnuumm [[ 1155 ]] == xx ;;
  • 17.
    BBiinnaarryy SSeeaarrcchh AAllggoorriitthhmmss DDiivviiddee aanndd CCoonnqquueerr rruullee 11 22 33 44 55 66 77 88 11 22 33 44 55 66 77 88 11 22 33 44
  • 18.
    Binary SSeeaarrcchh AAllggoorriitthhmm  IIff wwee tthhiinnkk aabboouutt iitt ,, iitt iiss llooggnn lloogg22  TToottaall aarrrraayy ssiizzee wwiillll bbee 22nn aanndd nnuummbbeerr ccaann bbee ffoouunndd iinn nn ttiimmeess  IIff 11000000 nnuummbbeerrss tthheenn 1100 ttrriieess aarree mmaaxx 221100 == 11002244
  • 19.
    Is divide andconquer the ffaasstteesstt wwaayy,, aallll tthhee ttiimmee,, ooff sseeaarrcchhiinngg ffoorr aa nnuummbbeerr iinn aa lliisstt ?? 11 Linear Search ? 22 33 110000 Binary Search ? Suppose they are Random Suppose they are Ordered Suppose they are mixed-up
  • 20.
  • 21.
    Sending AArrrraayyss iinnttoo AAnnootthheerr FFuunnccttiioonnss  NNaammee ooff tthhee aarrrraayy  SSiizzee ooff tthhee aarrrraayy
  • 22.
    EExxaammppllee 11 Declaration cchhaarr nnaammee [[ 110000 ]] ;; Function Call rreevveerrssee (( nnaammee ,, 110000 )) ;;
  • 23.
    EExxaammppllee 11 Prototype vvooiidd rreevveerrssee (( cchhaarr [[ ]] ,, iinntt )) ;; Definition vvooiidd rreevveerrssee (( cchhaarr cchhaarraacctteerrss [[ ]] ,, iinntt aarrrraayySSiizzee)) {{ rreevveerrssee tthhee cchhaarraacctteerr ssttrriinngg;; }}
  • 24.
    EExxaammppllee 11 mmaaiinn(( )) {{ cciinn >>>> nnaammee [[ ]] ;; rreevveerrssee (( cchhaarraacctteerr [[ ]] ,, aarrrraayySSiizzee )) ;; ccoouutt <<<< nnaammee [[ ]] ;; }} What will it Show ?
  • 25.
    CCaallll bbyy RReeffeerreennccee && AAddddrreessss OOppeerraattoorr ** PPooiinntteerr OOppeerraattoorr IInn ccaassee ooff aarrrraayyss ,, ccaallll bbyy rreeffeerreennccee iiss ddeeffaauulltt
  • 26.
    X iiss aavvaarriiaabbllee wwhhiicchh iiss aa llooccaattiioonn iinn tthhee mmeemmoorryy NNaammee [[ ]] iiss aann aarrrraayy -- -- -- -- -- -- -- -- Array called Name Starting address Memory name
  • 27.
    EExxaammppllee 22 vvooiiddff (( iinntt [[ ]] ,, iinntt )) ;; mmaaiinn (( )) {{ iinntt nnuummbbeerrss [[ 110000 ]] ;; ff (( nnuummbbeerrss ,, 110000)) ;; ffoorr (( iinntt ii == 00 ;; ii << 110000 ;; ii ++++)) ccoouutt <<<< nnuummbbeerrss [[ ii ]] ;; }}
  • 28.
    EExxaammppllee 22 vvooiiddff (( iinntt xx [[ ]] ,, iinntt aarrrraayySSiizzee )) {{ iinntt ii ;; ffoorr (( ii == 00 ;; ii << aarrrraayySSiizzee ;; ii ++++)) xx [[ ii ]] == ii ;; }}
  • 29.
    ff (( xx[[ 33 ]] )) ;; EExxeeccuutteedd wwiitthh ccaallll bbyy vvaalluuee,, nnoott bbyy rreeffeerreennccee
  • 30.
     WWhheenneevveerr aavvaarriiaabbllee iiss ppaasssseedd ,, iitt iiss ppaasssseedd bbyy vvaalluuee  WWhheenneevveerr yyoouu ppaassss aann aarrrraayy ttoo ffuunnccttiioonn,, iitt iiss ccaalllleedd bbyy rreeffeerreennccee
  • 31.
    VVeeccttoorr 22 DDiimmeennssiioonnaall 33 DDiimmeennssiioonnaall DDoott PPrroodduucctt VVeeccttoorr PPrroodduucctt
  • 32.
  • 33.
    TTwwoo DDiimmeennssiioonnaall AArrrraayy iinntt xx [[ 22 ]] [[ 33 ]] ;;
  • 34.
    EExxaammppllee 33 iinnttmmaaxxRRoowwss == 22;; iinntt mmaaxxCCoollss == 33 ;; iinntt mmaattrriixx [[ 22]] [[ 33 ]];; iinntt rrooww ,, ccooll ;; ffoorr (( rrooww == 00 ;; rrooww << mmaaxxRRoowwss ;; rrooww ++++ )) {{ ffoorr (( ccooll == 00 ;; ccooll << mmaaxxCCoollss ;; ccooll ++++ )) {{ ccoouutt <<<< ““PPlleeaassee eenntteerr vvaalluuee ooff ””<<<< rrooww <<<< ““ ““ <<<< ccooll;; cciinn >>>> mmaattrriixx [[ rrooww ]] [[ ccooll ]] ;; }} }}
  • 35.
    55 22 99 55 22 99 77 00 44 After first outer loop After second outer loop Input Input [0] [0] [1]
  • 36.
    TThhrreeee DDiimmeennssiioonnaall AArrrraayyss iinntt xx [[ ]] [[ ]] [[ ]] ;;