സെലക്ഷൻ സോർട്ട്
|
സെലക്ഷൻ സോർട്ട് ഒരു ലിസ്റ്റ് ക്രമീകരിക്കുന്നു |
|
| കുടുംബം | സോർട്ടിങ്ങ് അൽഗൊരിതം |
|---|---|
| ഡാറ്റാ സ്ട്രക്ചർ | അറേ |
| മോശം സമയസങ്കീർണ്ണത | ![]() |
| നല്ല സമയസങ്കീർണ്ണത | ![]() |
| ശരാശരി സമയസങ്കീർണ്ണത | ![]() |
| മോശം മെമ്മറി സങ്കീർണ്ണത | ആകെ , ലിസ്റ്റിനു പുറമെ ![]() |
| Optimal | അല്ല |
സരളമായ ഒരു താരതമ്യ സോർട്ടിങ്ങ് അൽഗൊരിതമാണ് സെലക്ഷൻ സോർട്ട്. ഒരു ലിസ്റ്റിലെ സംഖ്യകളെയും മറ്റും ക്രമത്തിലാക്കാനാണ് ഇത് ഉപയോഗിക്കുന്നത്. ഇതിന്റെ സമയസങ്കീർണ്ണത വളരെക്കൂടുതലായതിനാൽ (
) വലിയ ലിസ്റ്റുകളിൽ ഇത് ഉപയോഗിക്കുക പ്രായോഗികമല്ല. ഈ in-place അൽഗൊരിതം ഉപയോഗിക്കുന്നതിനായി ലിസ്റ്റിനായുള്ള
മെമ്മറിക്കു പുറമെ O(1) മെമ്മറി മാത്രമേ ആവശ്യമുള്ളൂ.
ലിസ്റ്റിലെ ഏറ്റവും ചെറിയ സംഖ്യ കണ്ടെത്തി അതിനെ ആദ്യത്തെ സംഖ്യയുമായി പരസ്പരം മാറ്റുകയും ഈ പ്രക്രിയ തുടരുകയും ചെയ്താണ് സെലക്ഷൻ സോർട്ട് സംഖ്യകളെ ക്രമീകരിക്കുന്നത്.
ഉള്ളടക്കം |
[തിരുത്തുക] അൽഗൊരിതം
സെലക്ഷൻ സോർട്ട് അൽഗൊരിതത്തിലെ പ്രധാന ഭാഗങ്ങൾ ഇവയാണ്:
- ലിസ്റ്റിലെ ഏറ്റവും ചെറിയ സംഖ്യ കണ്ടെത്തുക
- ഇതിനെയും ആദ്യത്തെ സംഖ്യയെയും പരസ്പരം മാറ്റുക
- ലിസ്റ്റിലെ ബാക്കിയുള്ള സംഖ്യകളുടെമേൽ ഈ പ്രക്രിയ തുടരുക
[തിരുത്തുക] സ്യൂഡോകോഡ്
N സംഖ്യകളുള്ള array എന്ന ലിസ്റ്റ് സെലക്ഷൻ സോർട്ട് വഴി ക്രമത്തിലാക്കാൻ:
1. start <- 1 2. start = N ആണെങ്കിൽ നിർത്തുക 3. minpos <-start 4. i <- start+1 മുതൽ N വരെ പടി 5 ചെയ്യുക 5. array[i] > array[minpos] ആണെങ്കിൽ minpos <- i 6. array[start], array[minpos] എന്നിവയെ പരസ്പരം മാറ്റുക 7. start <- start + 1 8. പടി 2 ലേക്ക് പോകുക
[തിരുത്തുക] വിശകലനം
ലിസ്റ്റിലെ സംഖ്യകൾ എന്തുതന്നെയായാലും
തവണ പടി 5 ചെയ്യേണ്ടി വരുന്നു എന്നതിനാൽ സെലക്ഷൻ സോർട്ടിന്റെ മോശം, ശരാശരി, നല്ല സമയസങ്കീർണ്ണതകളെല്ലാം തന്നെ
ആണ്. ശരാശരി, മോശം സമയസങ്കീർണ്ണതകൾ
ആയുള്ള സോർട്ടിങ്ങ് അൽഗൊരിതങ്ങൾ ഉണ്ട്. മോശം സമയസങ്കീർണ്ണത
ആയുള്ള സോർട്ടിങ്ങ് അൽഗൊരിതങ്ങളിൽ ബബിൾ സോർട്ട്, ഗ്നോം സോർട്ട് എന്നിവയെക്കാൾ വേഗതയുള്ളതാണ് ഇതെങ്കിലും ഇൻസർഷൻ സോർട്ട് ഇതിനെക്കാൾ വേഗതയേറിയതാണ്. വലിയ ലിസ്റ്റുകൾ ക്രമത്തിലാക്കാൻ സെലക്ഷൻ സോർട്ട് സാധാരണ ഉപയോഗിക്കാറില്ല.

