ඇල්ගොරිතම සංකීර්ණතාව ප්රධාන වශයෙන් සම්පත් දෙකක් ආමන්ත්රණය කරයි:
කාලය
(ක්රියාත්මක කිරීමේ කාලය) සහ
අවකාශය
(මතක භාවිතය). කාල සංකීර්ණතාවය ආදාන ප්රමාණය සමඟ ධාවන කාලය වර්ධනය වන ආකාරය මනිනු ලබන අතර (
එන්
), අවකාශ සංකීර්ණතාව මතක පරිභෝජනය ඇගයීමට ලක් කරයි. උදාහරණ වශයෙන්:
- ඇල්ගොරිතමයක් සහිත
ඕ(එන්)
කාල සංකීර්ණතාව ආදාන ප්රමාණය සමඟ රේඛීයව පරිමාණය කරයි.
- ඇල්ගොරිතමයක් සහිත
O(1)
අභ්යවකාශ සංකීර්ණතාව ආදාන ප්රමාණය නොසලකා නියත මතකය භාවිතා කරයි.
මිනුම් දෙකම අත්යවශ්යයි. වේගවත් ඇල්ගොරිතමයක් විශාල දත්ත කට්ටලවල මතකය අවසන් කළ හැකි අතර, මතක-කාර්යක්ෂම ඇල්ගොරිතමයක් තත්ය කාලීන යෙදුම් සඳහා ඉතා මන්දගාමී විය හැකිය.
කාර්යක්ෂමතාව ශක්යතාව නියම කරයි. මිලියන 10 ට සාපේක්ෂව අයිතම 10 ක ලැයිස්තුවක් වර්ග කිරීම සලකා බලන්න.:
- A
බුබුලු වර්ග කිරීම
(
ඕ(එන්)
) කුඩා දත්ත කට්ටල සඳහා ප්රමාණවත් විය හැකි නමුත් විශාල දත්ත කට්ටල සඳහා ප්රායෝගික නොවන බවට පත්වේ.
- A
ඒකාබද්ධ වර්ග කිරීම
(
O(n ලඝු-සටහන n)
) විශාල දත්ත කට්ටල අලංකාර ලෙස හසුරුවන නමුත් අමතර මතකයක් අවශ්ය වේ.
සංකීර්ණතා විශ්ලේෂණය මඟින් දෘඩාංග-විශේෂිත තොරතුරු ඉවත් කරමින් ඇල්ගොරිතම සංසන්දනය කිරීමට විශ්වීය භාෂාවක් සපයයි. එය සංවර්ධකයින්ට තීරණාත්මක පද්ධතිවල පරිමාණය පුරෝකථනය කිරීමට සහ බාධක වළක්වා ගැනීමට බලය ලබා දෙයි.
අසමමිතික අංකනයන් මඟින් ශ්රිතවල සීමිත හැසිරීම විස්තර කරන අතර සංකීර්ණතාව සඳහා කෙටි යෙදුමක් ලබා දේ. ප්රාථමික සංකේත තුන වන්නේ:
Big O අංකනය මඟින් ඇල්ගොරිතමයක් ගතවන උපරිම කාලය හෝ අවකාශය අර්ථ දක්වයි. උදාහරණයක් වශයෙන්:
-
O(1)
: නියත කාලය (උදා: දර්ශකය මඟින් අරා මූලද්රව්යයකට ප්රවේශ වීම).
-
ඕ(එන්)
: රේඛීය කාලය (උදා: ලැයිස්තුවක් හරහා පුනරාවර්තනය).
-
ඕ(එන්)
: චතුරස්ර කාලය (උදා: බුබුලු වර්ග කිරීමේ කූඩු ලූප).
Big O යනු කාර්ය සාධන සිවිලිම් සහතික කරන බැවින් බහුලව භාවිතා වන මිනුමයි.
ඔමේගා මගින් අවශ්ය අවම කාලය විස්තර කෙරේ. උදාහරණ වශයෙන්:
- රේඛීය සෙවුමකට ඇත්තේ
(1)
ඉලක්කය පළමු අංගය නම්.
ශුභවාදී වුවද, හොඳම අවස්ථා විශ්ලේෂණය නරකම අවස්ථා සැලසුම් කිරීම සඳහා අඩු තොරතුරු සපයයි.
තීටා, බිග් ඕ සහ ඔමේගා ඒකාබද්ධ කර, නිශ්චිත අසමමිතික හැසිරීම නියෝජනය කරයි. ඇල්ගොරිතමයක හොඳම සහ නරකම අවස්ථා සමාන නම්:
-
(n ලඝු-සටහන n)
ඒකාබද්ධ වර්ග සාමාන්ය සහ නරකම අවස්ථා සඳහා අදාළ වේ.
මෙම අංකනයන් වර්ධන අනුපාත කෙරෙහි අවධානය යොමු කරමින් නියතයන් සහ පහළ පෙළේ පද සාරාංශ කරයි. උදාහරණයක් වශයෙන්, 2n + 3n + 4 සරල කරයි ඕ(එන්) විශාල සඳහා චතුර්ථ පදය ප්රමුඛ වන බැවිනි එන් .
සංකීර්ණ පන්ති තේරුම් ගැනීම, පරිමාණය අනුව ඇල්ගොරිතම වර්ගීකරණය කිරීමට උපකාරී වේ. වඩාත්ම කාර්යක්ෂම සිට අවම කාර්යක්ෂම දක්වා ධුරාවලියක් මෙන්න.:
ක්රියාත්මක කිරීමේ කාලය හෝ මතකය නොවෙනස්ව පවතී
එන්
වර්ධනය වේ.
-
උදාහරණයක්
: යතුර භාවිතයෙන් හැෂ් වගු අගයකට ප්රවේශ වීම.
ධාවන කාලය ලඝුගණක ලෙස වර්ධනය වන්නේ
එන්
.
-
උදාහරණයක්
: ද්විමය සෙවුම සෑම පුනරාවර්තනයකදීම ආදාන අවකාශය අඩකින් අඩු කරයි.
ධාවන කාල පරිමාණයන් සමානුපාතිකව
එන්
.
-
උදාහරණයක්
: වර්ග නොකළ ලැයිස්තුවක් හරහා රේඛීය සෙවීම.
බෙදීමේ සහ ජය ගැනීමේ ඇල්ගොරිතමවල සුලභ වේ.
-
උදාහරණයක්
: වර්ග කිරීම සහ ගොඩ වර්ග කිරීම ඒකාබද්ධ කරන්න.
කැදැලි පුනරාවර්තන පුපුරන සුලු වර්ධනයකට මග පාදයි.
-
උදාහරණයක්
: බුබුලු වර්ග කිරීම සහ තේරීම් වර්ග කිරීම.
සෑම අමතර ආදානයක් සමඟම ධාවන කාලය දෙගුණ වේ.
-
උදාහරණයක්
: මතක තබා ගැනීමකින් තොරව පුනරාවර්තන ෆිබොනාච්චි ගණනය කිරීම.
ප්රතිසංස්කරණය මත පදනම් වූ ඇල්ගොරිතම.
-
උදාහරණයක්
: සංචාරක විකුණුම්කරුගේ ගැටලුව තිරිසන් බලයෙන් විසඳීම.
අතර වෙනස O(n ලඝු-සටහන n) සහ ඕ(එන්) දැඩි වේ එන් = 10 : පළමුවැන්න මිලි තත්පර වලින් ක්රියාත්මක විය හැකි අතර, දෙවැන්න දින කිහිපයක් ගත විය හැකිය.
ආදාන වින්යාසයන් මත පදනම්ව ඇල්ගොරිතම වෙනස් ලෙස ක්රියා කරයි. සියලුම අවස්ථා විශ්ලේෂණය කිරීමෙන් ශක්තිමත් බව සහතික කෙරේ:
දත්ත සමුදා විමසුම් ප්රශස්තකරණයක් හැෂ් සම්බන්ධ වීමක් අතර තෝරා ගත හැකිය ( ඕ(එන් + එම්) ) සහ කැදැලි ලූප් සම්බන්ධ වීම ( ඕ(එන්එම්) ) දත්ත ව්යාප්තිය මත පදනම්ව. අනපේක්ෂිත බව පිළිගත නොහැකි ආරක්ෂිත-අවදානම් පද්ධති (උදා: ගුවන් සේවා මෘදුකාංග) සඳහා නරකම අවස්ථා විශ්ලේෂණය ඉතා වැදගත් වේ.
එකම ගැටළුව විවිධ ඇල්ගොරිතම භාවිතයෙන් විසඳා ගත හැකිය. උදාහරණයක් ලෙස, අගයන් ලැයිස්තුවක ඉලක්ක අගයක් සෙවීමේ ගැටළුව රේඛීය සෙවීම, ද්විමය සෙවීම හෝ හැෂ් වගු සෙවීම වැනි විවිධ ඇල්ගොරිතම භාවිතයෙන් විසඳා ගත හැකිය.
පහත වගුවේ ලැයිස්තුවක ඉලක්ක අගයක් සෙවීම සඳහා මෙම ඇල්ගොරිතමවල කාල සහ අවකාශ සංකීර්ණතා සංසන්දනය කරයි. එන් අගයන්.
ඇල්ගොරිතම තේරීම ගැටලුවේ ප්රමාණය, ආදාන ලක්ෂණ සහ පවතින සම්පත් මත රඳා පවතී. උදාහරණයක් ලෙස, ලැයිස්තුව කුඩා නම් සහ වර්ග කර නොමැති නම්, රේඛීය සෙවීම හොඳම තේරීම විය හැකිය. ලැයිස්තුව විශාල නම් සහ වර්ග කර ඇත්නම්, ද්විමය සෙවීම හොඳම තේරීම විය හැකිය. ලැයිස්තුව විශාල නම් සහ වර්ග කර නොමැති නම්, හැෂ් වගු සෙවීම හොඳම තේරීම විය හැකිය.
ක්රමක්ෂය කළ විශ්ලේෂණය මෙහෙයුම් අනුපිළිවෙලක් සඳහා සාමාන්ය කාලය ගණනය කරයි.
-
උදාහරණයක්
: ගතික අරා පිරී ඇති විට ධාරිතාව දෙගුණ කරයි. තනිකඩයෙකු සිටියදී
තල්ලු කරන්න
මෙහෙයුමට ගත විය හැකිය
ඕ(එන්)
කාලය, ක්රමක්ෂය කළ පිරිවැය ඉතිරිව පවතී
O(1)
.
වැනි ඇල්ගොරිතම
මොන්ටේ කාලෝ
සහ
ලාස් වේගාස්
කාර්යක්ෂමතාව සඳහා අහඹු බව භාවිතා කරන්න.
-
උදාහරණයක්
: මිලර්-රබින් ප්රාථමිකතා පරීක්ෂණයට සම්භාවිතා සහතික ඇත, නමුත් නිර්ණායක ක්රමවලට වඩා වේගවත් වේ.
සමහර ගැටළු (උදා: බූලියන් තෘප්තිමත්භාවය) NP-සම්පූර්ණයි , එනම් දන්නා බහුපද-කාල විසඳුමක් නොපවතී. අඩු කිරීම් හරහා NP-සම්පූර්ණත්වය ඔප්පු කිරීම පරිගණක දෘඪතාව වර්ගීකරණය කිරීමට උපකාරී වේ.
ඇන් ඕ(එන්) ක්ලස්ටරින් ඇල්ගොරිතමය දැවැන්ත දත්ත කට්ටල සඳහා බාධකයක් බවට පත්විය හැකි අතර, kd ගස් වැනි ආසන්න ක්රම වෙත මාරු වීමට හේතු වේ ( O(n ලඝු-සටහන n) ).
පොදු යතුරු පද්ධති දෘඪතාව මත රඳා පවතී O(2) ප්රහාරවලට ප්රතිරෝධය දැක්වීම සඳහා ගැටළු (උදා: පූර්ණ සංඛ්යා සාධකකරණය).
තත්ය කාලීන විදැහුම්කරණ යන්ත්ර ප්රමුඛත්වය දෙයි O(1) 60+ FPS පවත්වා ගැනීම සඳහා භෞතික විද්යා සමාකරණ සඳහා ඇල්ගොරිතම.
හුවමාරු කරුණු:
-
කාලය vs. අවකාශය
: හැෂ් සිතියම් භාවිතා කරන්න (
O(1)
(සෙවුම්) මතකයේ වියදමින්.
-
සරල බව vs. ප්රශස්තභාවය
: ඇතුළත් කිරීමේ වර්ග කිරීම (
ඕ(එන්)
) කුඩා, ආසන්න වශයෙන් වර්ග කළ දත්ත කට්ටල සඳහා වඩාත් සුදුසු විය හැකිය.
පුනරාවර්තන ඇල්ගොරිතම සඳහා, පුනරාවර්තන සම්බන්ධතා ආකෘති ධාවන කාලය. උදාහරණයක් ලෙස, ඒකාබද්ධ කිරීමේ වර්ග කිරීමේ පුනරාවර්තනය:
[ T(n) = 2T(n/2) + O(n) ] නිරාකරණය කරන්නේ
O(n ලඝු-සටහන n)
හරහා
ප්රධාන ප්රමේයය
.
අනුභූතික පරීක්ෂණ න්යායාත්මක විශ්ලේෂණයට අනුපූරක වේ. පැතිකඩකරණ මෙවලම් (උදා: Valgrind, perf) සැබෑ ලෝකයේ බාධක හෙළි කරයි.
පිඹුරා
රේඛීය_සමූහය (arr):
මුළු = 0
අංකයට:
මුළු += ගණන
ප්රතිලාභ එකතුව
def quadratic_sum(arr):
මුළු = 0
මම ඉන්නේ:
j සඳහා arr හි:
මුළු += i * j
ප්රතිලාභ එකතුව
අතර ඕ(එන්) නියතයන් වියුක්ත කරයි, a 100එන් ඇල්ගොරිතමය a ට වඩා මන්දගාමී විය හැක 0.01එන් ප්රායෝගික සඳහා ඇල්ගොරිතමය එන් .
ඇන් O(n ලඝු-සටහන n) ඇල්ගොරිතමය දුර්වල ලෙස ක්රියා කළ හැකිය. ඕ(එන්) සඳහා එන් = 10 අධික වියදම් නිසා.
මතක තබා ගත් ෆිබොනාච්චි ශ්රිතයක් ( ඕ(එන්) space) පුනරාවර්තන අනුවාදයක් මෙන් නොව, විශාල යෙදවුම් මත බිඳ වැටිය හැක ( O(1) අවකාශය).
ස්වයං-සමතුලිත BST එකක් ( O(ලොග n) සෙවීම) සාමාන්ය BST එකකට වඩා ආරක්ෂිතයි ( ඕ(එන්) නරකම අවස්ථාව) විශ්වාස කළ නොහැකි දත්ත සඳහා.
ඇල්ගොරිතම සංකීර්ණතා විශ්ලේෂණය යනු පරිගණක කාර්යක්ෂමතාවයේ විශාල භූ දර්ශනය හරහා සංවර්ධකයින්ට මඟ පෙන්වන මාලිමා යන්ත්රයයි. MTSC7196 සිසුන් සඳහා, මෙම විෂය ප්රගුණ කිරීම න්යායාත්මක දැනුම සහ ප්රායෝගික විශේෂඥතාව පාලම් කරයි. කාලය සහ අවකාශ අවශ්යතා විච්ඡේදනය කිරීමෙන්, අසමමිතික සීමාවන් සංසන්දනය කිරීමෙන් සහ සැබෑ ලෝකයේ හුවමාරු කිරීම් සැරිසැරීමෙන්, සංවර්ධකයින්ට අලංකාර ලෙස පරිමාණය කරන සහ විශ්වාසදායක ලෙස ක්රියා කරන පද්ධති නිර්මාණය කළ හැකිය.
දත්ත මත පදනම් වූ නවෝත්පාදනයන් මගින් අර්ථ දක්වා ඇති යුගයක, අතර වෙනස හඳුනා ගැනීමේ හැකියාව O(n ලඝු-සටහන n) සහ ඕ(එන්) විසඳුම යනු හුදෙක් ශාස්ත්රීයකරණය පමණක් නොවේ, එය උපායමාර්ගික අවශ්යතාවයකි. ඔබ ඔබේ අධ්යයන කටයුතු තුළින් ඉදිරියට යන විට, මතක තබා ගන්න: සංකීර්ණතා විශ්ලේෂණය යනු සංඛ්යා සහ සංකේත පමණක් නොවේ. එය ගණනය කිරීමේ හෘද ස්පන්දනය තේරුම් ගැනීම ගැන ය.
2019 සිට, එක්සත් ආ aree වරයා හමුවී ගුවැන්ෂු, චීනය, ස්වර්ණාභරණ නිෂ්පාදන පදනම තුළ ආරම්භ කරන ලදී. අපි ස්වර්ණාභරණ ව්යවසායයක් සැලසුම්, නිෂ්පාදනය සහ විකිණීම ඒකාබද්ධ කිරීම.
+86-19924726359/+86-13431083798
3 වන මහල 13, ගෝමර් ස්මාර්ට් සිටි, අංක. ජූනින් වීදිය, හයිස්ගු දිස්ත්රික්කය, ගුවැන්ෂු, චීනය.