ئالگورىزىمنىڭ مۇرەككەپلىكى ئاساسلىقى ئىككى مەنبەنى كۆرسىتىدۇ:
ۋاقىت
(ئىجرا مۇددىتى) ۋە
بوشلۇق
(ئىچكى ساقلىغۇچ ئىشلىتىش). ۋاقىت مۇرەككەپلىكى ئىجرا ۋاقتىنىڭ كىرگۈزۈش چوڭلۇقى بىلەن قانداق ئۆسىدىغانلىقىنى ئۆلچەيدۇ.
n
) ، بوشلۇقنىڭ مۇرەككەپلىكى ئىچكى ساقلىغۇچنى باھالايدۇ. مەسىلەن:
- بىلەن ھېسابلاش ئۇسۇلى
O (n)
ۋاقىت مۇرەككەپلىكى كىرگۈزۈش چوڭلۇقى بىلەن تۈز.
- بىلەن ھېسابلاش ئۇسۇلى
O(1)
بوشلۇقنىڭ مۇرەككەپلىكى كىرگۈزۈش چوڭ-كىچىك بولۇشىدىن قەتئىينەزەر دائىملىق ئىچكى ساقلىغۇچ ئىشلىتىدۇ.
ھەر ئىككى ئۆلچەم ئىنتايىن مۇھىم. تېز ھېسابلاش ئۇسۇلى چوڭ سانلىق مەلۇمات ئامبىرىدىكى ئىچكى ساقلىغۇچنى خورىتىۋېتىشى مۇمكىن ، ئەمما ئەستە ساقلاش ئۈنۈمى ھېسابلاش ئۇسۇلى ئەمەلىي قوللىنىشچان پروگراممىلاردا بەك ئاستا بولۇشى مۇمكىن.
ئۈنۈم مۇمكىنلىكىنى بەلگىلەيدۇ. 10 مىليون بىلەن 10 مىليوننىڭ تىزىملىكىنى رەتلەشنى ئويلىشىپ كۆرۈڭ:
- A
كۆپۈك تۈرى
(
O (n)
) كىچىك سانلىق مەلۇمات سانلىق مەلۇماتلىرىغا يېتىشى مۇمكىن ، ئەمما چوڭ سانلىق مەلۇماتلارغا ماس كەلمەيدۇ.
- A
بىرلەشتۈرۈش
(
O (n log n)
) چوڭ سانلىق مەلۇمات ئامبىرىنى چىرايلىق بىر تەرەپ قىلىدۇ ، ئەمما قوشۇمچە ئىچكى ساقلىغۇچ تەلەپ قىلىدۇ.
مۇرەككەپ ئانالىز ئالگورىزىمنى سېلىشتۇرۇش ئۈچۈن قاتتىق تىل بىلەن تەمىنلەيدۇ ، قاتتىق دېتالغا ئائىت تەپسىلاتلارنى چىقىرىپ تاشلايدۇ. ئۇ ئاچقۇچىلارغا كېڭەيتىشچانلىقىنى ئالدىن پەرەز قىلىش ۋە ھالقىلىق سىستېمىلاردىكى توسالغۇلاردىن ساقلىنىش ھوقۇقىنى بېرىدۇ.
ئالامەتسىز ئىزاھلار ئىقتىدارلارنىڭ چەكلەش ھەرىكىتىنى تەسۋىرلەپ ، مۇرەككەپلىك ئۈچۈن قىسقارتىپ تەمىنلەيدۇ. ئۈچ ئاساسلىق چۈشەنچە:
Big O ئىزاھاتى ئالگورىزىمنىڭ ئەڭ چوڭ ۋاقىت ياكى بوشلۇقنى بەلگىلەيدۇ. مەسىلەن:
-
O(1)
: تۇراقلىق ۋاقىت (مەسىلەن ، سانلار گۇرپىسىنى كۆرسەتكۈچ بويىچە زىيارەت قىلىش).
-
O (n)
: سىزىقلىق ۋاقىت (مەسىلەن ، تىزىملىك ئارقىلىق تەكرارلاش).
-
O (n)
: كۋادرات ۋاقىت (مەسىلەن ، كۆپۈكچە ئۇۋىسى ھالقىسى).
Big O ئەڭ كۆپ ئىشلىتىلىدىغان ئۆلچەم ، چۈنكى ئۇ ئىقتىدارنىڭ يۇقىرى چېكىگە كاپالەتلىك قىلىدۇ.
Omega تەلەپ قىلىنغان ئەڭ تۆۋەن ۋاقىتنى تەسۋىرلەيدۇ. مەسىلەن:
- سىزىقلىق ئىزدەش بار
(1)
ئەگەر نىشان بىرىنچى ئېلېمېنت بولسا.
ئۈمىدۋار بولسىمۇ ، ئەڭ ياخشى دېلولارنى تەھلىل قىلىش ئەڭ ناچار ئەھۋالنى پىلانلاش ئۈچۈن ئانچە ئاز ئەمەس.
تېتا چوڭ O بىلەن Omega نى بىرلەشتۈرگەن بولۇپ ، ئېنىق ئالامەتسىز ھەرىكەتكە ۋەكىللىك قىلىدۇ. ئەگەر ئالگورىزىم ئەڭ ياخشى ۋە ناچار ئەھۋاللار ئوخشاش بولسا:
-
(n log n)
ھەر خىل ئوتتۇرىچە ۋە ئەڭ ناچار ئەھۋاللارنى بىرلەشتۈرۈشكە ماس كېلىدۇ.
بۇ ئىزاھلار ئېشىش سۈرئىتىنى ئاساس قىلىپ تۇراقلىق ۋە تۆۋەن دەرىجىلىك ئاتالغۇلارنى چىقىرىپ تاشلايدۇ. مەسىلەن ، 2n + 3n + 4 ئاددىيلاشتۇرىدۇ O (n) چۈنكى كۇئادرات ئاتالغۇ چوڭراق n .
مۇرەككەپ دەرسلەرنى چۈشىنىش ئالگورىزىمنى كۆلەملەشتۈرۈش ئارقىلىق تۈرگە ئايرىشقا ياردەم بېرىدۇ. كۆپ قاتلامدىن ئەڭ تۆۋەن ئۈنۈمگە ئېرىشىدۇ:
ئىجرا ۋاقتى ياكى ئىچكى ساقلىغۇچ ئۆزگەرمەيدۇ
n
ئۆسىدۇ.
-
مىسال
: ئاچقۇچ ئارقىلىق hash جەدۋىلى قىممىتىنى زىيارەت قىلىش.
ئىجرا ۋاقتى لوگارىزىم بىلەن ئۆسىدۇ
n
.
-
مىسال
: ئىككىلىك ئىزدەش ھەر بىر تەكرارلاش كىرگۈزۈش بوشلۇقىنى يېرىم قىلىدۇ.
ئىجرا ۋاقتى تارازىسى بىلەن ماس كېلىدۇ
n
.
-
مىسال
: تەرتىپسىز تىزىملىك ئارقىلىق سىزىقلىق ئىزدەش.
بۆلۈش ۋە بويسۇندۇرۇش ھېسابلاش ئۇسۇلىدا كۆپ ئۇچرايدۇ.
-
مىسال
: رەتلەش ۋە دۆۋە تۈرلەرنى بىرلەشتۈرۈش.
ئۇۋىسى تەكرارلىنىش پارتىلاش خاراكتېرلىك ئۆسۈشنى كەلتۈرۈپ چىقىرىدۇ.
-
مىسال
: كۆپۈكلەشتۈرۈش ۋە تاللاش تۈرى.
ئىجرا ۋاقتى ھەر بىر قوشۇمچە كىرگۈزۈش بىلەن بىر قاتلىنىدۇ.
-
مىسال
: قايتا-قايتا فىبوناچچى ھېسابلاش.
ئىجازەتنى ئاساس قىلغان ھېسابلاش ئۇسۇلى.
-
مىسال
: ساياھەتچى ساتقۇچىلار مەسىلىسىنى رەھىمسىزلەرچە ھەل قىلىش.
پەرقى O (n log n) ۋە O (n) بولۇپ قالىدۇ n = 10 : ئالدىنقىسى مىللېس سېكۇنتتا ئىجرا قىلىشى مۇمكىن ، كېيىنكىسىگە بىر نەچچە كۈن ۋاقىت كېتىشى مۇمكىن.
ئالگورىزىم كىرگۈزۈش سەپلىمىسىگە ئاساسەن باشقىچە ئىشلەيدۇ. بارلىق ئەھۋاللارنى تەھلىل قىلىش پۇختا بولۇشقا كاپالەتلىك قىلىدۇ:
ساندان سوئاللىرىنى ئەلالاشتۇرغۇچى hash قوشۇش (ياكى قوشۇش) نى تاللىشى مۇمكىن O (n + m) ) and nested loop join ( O (nm) ) سانلىق مەلۇمات تارقىتىشنى ئاساس قىلىدۇ. ئەڭ ناچار ئەھۋالنى تەھلىل قىلىش بىخەتەرلىكنى تەنقىد قىلىدىغان سىستېمىلار (مەسىلەن ئاۋىئاتسىيە يۇمشاق دېتالى) ئۈچۈن ئىنتايىن مۇھىم ، بۇ يەردە مۆلچەرلىگىلى بولمايدۇ.
ئوخشاش ئالگورىزىم ئارقىلىق ئوخشاش مەسىلىنى ھەل قىلغىلى بولىدۇ. مەسىلەن ، قىممەت تىزىملىكىدە نىشان قىممىتىنى ئىزدەش مەسىلىسى ئوخشىمىغان ھېسابلاش ئۇسۇلى ئارقىلىق ھەل بولىدۇ ، مەسىلەن سىزىقلىق ئىزدەش ، ئىككىلىك ئىزدەش ياكى hash جەدۋىلى ئىزدەش.
تۆۋەندىكى جەدۋەلدە بۇ ئالگورىزىملارنىڭ تىزىملىكتىكى نىشان قىممىتىنى ئىزدەش ۋاقتى ۋە بوشلۇق مۇرەككەپلىكى سېلىشتۇرۇلغان n قىممەت.
ئالگورىزىمنى تاللاش مەسىلىنىڭ چوڭ-كىچىكلىكى ، كىرگۈزۈش ئالاھىدىلىكى ۋە بار مەنبەلەرگە باغلىق. مەسىلەن ، تىزىملىك كىچىك ھەم تەرتىپسىز بولسا ، سىزىقلىق ئىزدەش ئەڭ ياخشى تاللاش بولۇشى مۇمكىن. ئەگەر تىزىملىك چوڭ ۋە رەتلەنگەن بولسا ، ئىككىلىك ئىزدەش ئەڭ ياخشى تاللاش بولۇشى مۇمكىن. ئەگەر تىزىملىك چوڭ ۋە تەرتىپسىز بولسا ، hash جەدۋىلىنى ئىزدەش ئەڭ ياخشى تاللاش بولۇشى مۇمكىن.
ئامورتىزلانغان ئانالىز مەشغۇلات تەرتىپىنىڭ ئوتتۇرىچە ۋاقتى.
-
مىسال
: ھەرىكەتچان سانلار گۇرپىسى تولۇق بولغاندا قوش سىغىمچانلىقى. بىرلا ۋاقىتتا
ئىتتىرىش
مەشغۇلات ئېلىپ بېرىشى مۇمكىن
O (n)
ۋاقىت ، ئامورتىزاتسىيە تەننەرخى يەنىلا ساقلىنىدۇ
O(1)
.
ئالگورىزىمغا ئوخشاش
مونتې كارلو
ۋە
Las Vegas
ئۈنۈم ئۈچۈن تاسادىپىيلىق ئىشلىتىڭ.
-
مىسال
: مىللېر-رابىن ئىپتىدائىي سىنىقىنىڭ ئېھتىماللىق كاپالىتى بار ، ئەمما ئېنىقلاش ئۇسۇلىدىن تېز.
بەزى مەسىلىلەر (مەسىلەن ، بولاننىڭ قانائەتچانلىقى) NP- تامام يەنى مەلۇم كۆپ قۇتۇپلۇق ۋاقىت ھەل قىلىش چارىسى مەۋجۇت ئەمەس. ئازايتىش ئارقىلىق NP- مۇكەممەللىكىنى ئىسپاتلاش ھېسابلاشنىڭ قاتتىقلىقىنى تۈرگە ئايرىشقا ياردەم بېرىدۇ.
An O (n) توپلاشتۇرۇلغان ئالگورىزىم چوڭ سانلىق مەلۇمات سانلىق مەلۇماتلىرىنىڭ بوتۇلكىسىغا ئايلىنىپ ، kd دەرەخلىرىگە ئوخشاش تەخمىنىي ئۇسۇللارغا ئۆزگىرىشىنى كەلتۈرۈپ چىقىرىدۇ. O (n log n) ).
ئاممىۋى ئاچقۇچلۇق سىستېمىلارنىڭ قاتتىقلىقىغا تايىنىدۇ O(2) ھۇجۇملارغا قارشى تۇرۇشتىكى مەسىلىلەر (مەسىلەن ، پۈتۈن سان).
ھەقىقىي ۋاقىتتىكى ماتورنى ئالدىنقى ئورۇنغا قويىدۇ O(1) فىزىكا تەقلىد قىلىش ئالگورىزىملىرى 60+ FPS نى ساقلاپ قالىدۇ.
سودا-سېتىق مەسىلىسى:
-
ۋاقىت ۋ. بوشلۇق
: Hash خەرىتىسىنى ئىشلىتىڭ (
O(1)
ئىزدەش).
-
ئاددىيلىق ۋ. ئەلالاشتۇرۇش
: قىستۇرۇش تۈرى (
O (n)
) كىچىك ، رەتلەنگەن سانلىق مەلۇمات ئامبىرىغا ماس كېلىشى مۇمكىن.
قايتا-قايتا ھېسابلاش ئۇسۇلى ئۈچۈن ، قايتا-قايتا مۇناسىۋەت ئەندىزىسىنىڭ ئىجرا ۋاقتى. مەسىلەن ، قايتا-قايتا بىرلەشتۈرۈش:
[T (n) = 2T (n / 2) + O (n)] ھەل قىلىدۇ
O (n log n)
ئارقىلىق
ئۇستاز نەزەرىيىسى
.
تەجرىبە سىنىقى نەزەرىيەۋى تەھلىلنى تولۇقلايدۇ. ئارخىپ قوراللىرى (مەسىلەن ، Valgrind ، ئەتىر) ھەقىقىي دۇنيانىڭ كەمتۈكلۈكىنى ئاشكارىلايدۇ.
python
def linear_sum (arr):
total = 0
for num in arr:
total + = num
قايتىش ئومۇمىي
def quadratic_sum (arr):
total = 0
for i in arr:
for j in arr:
total + = i * j
قايتىش ئومۇمىي
ھالبۇكى O (n) ئابستراكتلارنى يىراقلاشتۇرىدۇ ، ئا n100 ھېسابلاش ئۇسۇلى a دىن ئاستا بولۇشى مۇمكىن n0.01 ئەمەلىي ھېسابلاش ئۇسۇلى n .
An O (n log n) ئالگورىزىمنىڭ ئىپادىسى ياخشى بولماسلىقى مۇمكىن O (n) for n = 10 سەۋەبىدىن.
ئەستە ساقلانغان Fibonacci ئىقتىدارى ( O (n) بوشلۇق) تەكرارلانغان نۇسخىسىغا ئوخشىمايدىغىنى چوڭ كىرگۈزگۈچلەردە سوقۇلۇشى مۇمكىن O(1) space).
ئۆز-ئۆزىنى تەڭپۇڭلاشتۇرۇش BST ( O (log n) ئىزدەش) ئادەتتىكى BST دىن بىخەتەر ( O (n) ئەڭ ناچار ئەھۋال) ئىشەنچسىز سانلىق مەلۇمات ئۈچۈن.
ئالگورىزىمنىڭ مۇرەككەپلىكىنى تەھلىل قىلىش كومپاس يېتەكلىگۈچىلەرنىڭ ھېسابلاش ئۈنۈمىنىڭ كەڭ مەنزىرىسى ئارقىلىق يېتەكلەيدۇ. MTSC7196 ئوقۇغۇچىلىرىغا نىسبەتەن ، بۇ پەننى ئىگىلەش نەزەرىيەۋى بىلىم ۋە ئەمەلىي تەجرىبىنى كۆۋرۈك قىلىدۇ. پروگرامما ئاچقۇچىلار ۋاقىت ۋە بوشلۇق تەلىپىنى پارچىلاش ، سىممېتتىك بولمىغان چەكنى سېلىشتۇرۇش ۋە رېئال سودا سودىسىدا مېڭىش ئارقىلىق ، پروگرامما ئاچقۇچىلار چىرايلىق ۋە ئىشەنچلىك مەشغۇلات قىلالايدىغان سىستېمىلارنى ياسىيالايدۇ.
سانلىق مەلۇمات ئارقىلىق يېڭىلىق يارىتىش ئارقىلىق ئېنىقلانغان دەۋردە ، پەرقلەندۈرۈش ئىقتىدارى O (n log n) and an O (n) ھەل قىلىش پەقەت ئىستراتېگىيىلىك مەجبۇرىيەت ئەمەس. تەتقىقاتىڭىزدا ئىلگىرىلەۋاتقان ۋاقتىڭىزدا ، ئېسىڭىزدە تۇتۇڭ: مۇرەككەپلىك ئانالىزى پەقەت سان ۋە بەلگىلەرگىلا مۇناسىۋەتلىك ئەمەس. ئۇنىڭ ھېسابلاشنىڭ يۈرەك سوقۇشىنى چۈشىنىش ھەققىدىكى.
2019-يىلدىن باشلاپ, سىز گۇاڭجۇغا ئەگىشىپ, گۇاڭجۇ, جۇڭگو, ئۈنچە-مەرۋايىت ئىشلەپچىقىرىش بازىسىدا قۇرۇلايدىكەن. بىز ئۈنچە-ئاشكارە قۇرۇلۇش سىستېمىسى بىرلەشتۈرۈش, ئىشلەپچىقىرىش ۋە سېتىش.
+86-19924726359/+86-13431083798
13, گومېم ئەقلىي شەھەرسى, ياق. , گۇاڭخۇ رايونى, گۇاڭخۇ رايونى, گۇاڭجۇ رايونى, جۇڭگونىڭ گۇاڭجۇ رايونى.