Clàr-innse[Falaich][Seall]
Tha saidheans coimpiutaireachd mu dheidhinn a bhith a’ tuigsinn iom-fhillteachd algorithms agus structaran dàta.
Tha liosta agad de nithean a dh’ fheumar a sheòrsachadh, ach chan eil an ùine no na goireasan agad airson algairim seòrsachaidh nas toinnte a chleachdadh.
Is e rèiteachadh cuir a-steach aon de na h-algorithms seòrsachaidh as sìmplidh, ach faodaidh e a bhith slaodach airson liostaichean mòra.
Tha buileachadh agus tuigse furasta air an dòigh seo a dhèanamh mòr-chòrdte am measg luchd-prògramaidh. Tha e foirfe airson liostaichean beaga no nuair a dh’ fheumas tu fuasgladh sgiobalta.
Anns a’ phost bhlog seo, seallaidh sinn ris an iom-fhillteachd ùine a thaobh rèiteachadh cuir a-steach. Tha an algairim seo air a chleachdadh gus arrays a sheòrsachadh, agus tha ùine ruith aige de O (n2). Tha seo a 'ciallachadh gu bheil an iom-fhillteachd ùine a' meudachadh le meud an t-sreath.
Ach, faodaidh an algairim seo a bhith nas luaithe gu tric na algorithms seòrsachaidh eile, leithid quicksort.
Bheir sinn sùil nas mionaidiche air mar a tha rèiteachadh cuir a-steach ag obair!
Dè a th’ ann an Algorithm Seòrsa Insertion?
Aon eileamaid aig an aon àm, bidh seòrsa cuir a-steach a’ gineadh raon a ghabhas rèiteachadh, ris an canar gu tric liosta.
Mar eisimpleir, thathas a’ rèiteachadh ann am prògraman coimpiutair iom-fhillte leithid compilers, far a bheil òrdugh comharran cudromach airson mìneachadh a’ phrògram.
Ciamar a tha an seòrsa cur a-steach ag obair?
Nuair a chleachdas sinn seòrsa cuir a-steach gus raon a sheòrsachadh, tòisichidh an algairim le bhith a’ lorg an rud as lugha air an liosta agus ga chuir a-steach don t-suidheachadh cheart.
Bidh e an uairsin a’ lorg an ath rud as lugha agus ga chuir a-steach don t-suidheachadh cheart, agus mar sin air adhart.
Bidh an algairim ag obair le bhith a 'lùbadh tron liosta, a' dèanamh coimeas eadar gach nì ris an fhear a tha air thoiseach air.
Ma tha na nithean san òrdugh cheàrr, bidh an algairim ag atharrachadh iad. Bidh e an uairsin a’ sgrùdadh a bheil an liosta air a sheòrsachadh, agus ma tha, thig an algairim gu crìch.
Ann an cleachdadh, bidh seòrsa cuir a-steach gu tric air a chuir an gnìomh le bhith a’ cleachdadh beagan loidhnichean de chòd, ga fhàgail na roghainn mòr-chòrdte airson arrays beaga a sheòrsachadh. Ach, bu chòir beachdachadh air iom-fhillteachd ùine nuair a thathar a’ cleachdadh an algairim seo.
Mar eisimpleir:
Seo eisimpleir de mar a tha rèiteachadh cuir a-steach ag obair. Cleachdaidh sinn an t-sreath a leanas:
1, 2, 3, 4, 5, 6
Bidh an algairim a 'tòiseachadh le bhith a' lorg an rud as lugha air an liosta, is e sin 1. Bidh e an uairsin ga chuir a-steach don t-suidheachadh cheart, a 'chiad suidheachadh. Bidh e an uairsin a 'lorg an ath rud as lugha, is e sin 2. Bidh e ga chuir a-steach don t-suidheachadh cheart, is e sin an dàrna suidheachadh.
Bidh e an uairsin a 'lorg an ath rud as lugha, is e sin 3. Bidh e ga chuir a-steach don t-suidheachadh cheart, is e sin an treas suidheachadh.
Bidh e an uairsin a 'lorg an ath rud as lugha, is e sin 4. Bidh e ga chuir a-steach don t-suidheachadh cheart, is e sin an ceathramh suidheachadh, agus mar sin air adhart. Tha an liosta a-nis air a rèiteachadh!
Chì sinn bhon eisimpleir gu bheil an algairim a 'gabhail sia coimeasan agus suaipean gus an liosta a rèiteach. Tha seo air sgàth gu bheil e a’ gabhail n2 coimeas agus suaipean gus liosta de n nithean a sheòrsachadh. Anns a 'chùis seo, n = 6.
Ciamar a leasaicheas tu iom-fhillteachd ùine cuir a-steach?
Ged a tha ùine ruith de O (n2), faodar a leasachadh le bhith a’ cleachdadh algairim seòrsachaidh nas fheàrr, leithid quicksort.
Tha ùine ruith O(n log n) aig Quicksort, a tha tòrr nas luaithe na O(n2).
Ach, ann an cuid de chùisean, faodaidh rèiteachadh cuir a-steach a bhith nas luaithe na quicksort.
Mar eisimpleir, ma tha an liosta ann an òrdugh mar-thà, bheir rèiteachadh cuir a-steach nas lugha de ùine na quicksort.
Ann an cleachdadh, bidh seòrsa cuir a-steach gu tric air a chuir an gnìomh le bhith a’ cleachdadh beagan loidhnichean de chòd, ga fhàgail na roghainn mòr-chòrdte airson arrays beaga a sheòrsachadh.
Ach, bu chòir beachdachadh air iom-fhillteachd ùine nuair a thathar a’ cleachdadh an algairim seo.
Complexities Ùine
Iom-fhillteachd na cùise as miosa O(n2):
Bidh an iom-fhillteachd ùine ag àrdachadh le meud an t-sreath. Tha e a' gabhail n2 coimeas agus suaipean gus liosta de n nithean a sheòrsachadh.
Mar eisimpleir, ma tha sreath de mheud 1000 againn, bheir an algairim 1,000,000 coimeas agus suaipean gus an t-sreath a rèiteach.
Iom-fhillteachd cùise as fheàrr O(n):
Tha iom-fhillteachd ùine an aon rud ri meud an raon cuir a-steach. mi
Bidh t a’ gabhail n coimeas agus ag atharrachadh gus liosta de n nithean a sheòrsachadh. Mar eisimpleir, smaoinich air sreath de mheud 5. Gabhaidh an algairim còig coimeasan agus suaipean gus an t-sreath a rèiteachadh.
Iom-fhillteachd cùise cuibheasach O(n2):
Tha an iom-fhillteachd ùine eadar na duilgheadasan cùise as miosa agus as fheàrr sa chùis seo.
Tha e a' gabhail n2 coimeas agus suaipean gus liosta de n nithean a sheòrsachadh.
Mar sin, tha rèiteachadh cuir a-steach na algairim seòrsachaidh seasmhach.
Carson a tha seòrsachadh cuir a-steach seasmhach?
Tha an seòrsa cuir a-steach seasmhach oir tha e a’ gleidheadh òrdugh eileamaidean co-ionann anns an raon cuir a-steach.
Tha seo cudromach airson mòran thagraidhean, leithid lorg dàta no mion-sgrùdadh ionmhais. Mar eisimpleir, ma tha dà liosta àireamhan againn agus gu bheil sinn airson an coimeas a dhèanamh, feumaidh sinn dèanamh cinnteach gu bheil òrdugh nan eileamaidean air a ghleidheadh.
Mura h-eil na liostaichean air an òrdachadh, cha dèan sinn coimeas ceart orra.
Leave a Reply