ഉള്ളടക്ക പട്ടിക[മറയ്ക്കുക][കാണിക്കുക]
കംപ്യൂട്ടർ സയൻസ് എന്നത് അൽഗോരിതങ്ങളുടെയും ഡാറ്റാ സ്ട്രക്ചറുകളുടെയും സങ്കീർണതകൾ മനസ്സിലാക്കുന്നതിനാണ്.
നിങ്ങൾക്ക് അടുക്കേണ്ട ഇനങ്ങളുടെ ഒരു ലിസ്റ്റ് ഉണ്ട്, എന്നാൽ കൂടുതൽ സങ്കീർണ്ണമായ സോർട്ടിംഗ് അൽഗോരിതം ഉപയോഗിക്കുന്നതിന് നിങ്ങൾക്ക് സമയമോ വിഭവങ്ങളോ ഇല്ല.
ഇൻസെർഷൻ സോർട്ടിംഗ് ഏറ്റവും ലളിതമായ സോർട്ടിംഗ് അൽഗോരിതങ്ങളിൽ ഒന്നാണ്, എന്നാൽ വലിയ ലിസ്റ്റുകൾക്ക് ഇത് മന്ദഗതിയിലാകും.
ലളിതമായ നടപ്പാക്കലും മനസ്സിലാക്കലും ഈ രീതി പ്രോഗ്രാമർമാർക്കിടയിൽ പ്രിയങ്കരമാക്കി. ചെറിയ ലിസ്റ്റുകൾക്ക് അല്ലെങ്കിൽ നിങ്ങൾക്ക് പെട്ടെന്ന് പരിഹാരം ആവശ്യമുള്ളപ്പോൾ ഇത് അനുയോജ്യമാണ്.
ഈ ബ്ലോഗ് പോസ്റ്റിൽ, തിരുകൽ സോർട്ടിംഗിന്റെ സമയ സങ്കീർണ്ണത ഞങ്ങൾ നോക്കും. ഈ അൽഗോരിതം അറേകൾ അടുക്കാൻ ഉപയോഗിക്കുന്നു, ഇതിന് O(n2). അറേയുടെ വലുപ്പത്തിനനുസരിച്ച് സമയ സങ്കീർണ്ണത വർദ്ധിക്കുന്നു എന്നാണ് ഇതിനർത്ഥം.
എന്നിരുന്നാലും, ഈ അൽഗോരിതം ക്വിക്ക്സോർട്ട് പോലെയുള്ള മറ്റ് സോർട്ടിംഗ് അൽഗോരിതങ്ങളേക്കാൾ വേഗത്തിലായിരിക്കും.
തിരുകൽ സോർട്ടിംഗ് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് നമുക്ക് സൂക്ഷ്മമായി പരിശോധിക്കാം!
എന്താണ് ഇൻസെർഷൻ സോർട്ട് അൽഗോരിതം?
ഒരു സമയത്ത് ഒരു മൂലകം, ഉൾപ്പെടുത്തൽ അടുക്കൽ ക്രമപ്പെടുത്താവുന്ന ഒരു അറേ സൃഷ്ടിക്കുന്നു, അതിനെ ഒരു ലിസ്റ്റ് എന്ന് പതിവായി വിളിക്കുന്നു.
ഉദാഹരണത്തിന്, കംപൈലറുകൾ പോലുള്ള സങ്കീർണ്ണമായ കമ്പ്യൂട്ടർ പ്രോഗ്രാമുകളിൽ സോർട്ടിംഗ് പ്രയോഗിക്കുന്നു, പ്രോഗ്രാമിന്റെ വ്യാഖ്യാനത്തിന് ടോക്കണുകളുടെ ക്രമം പ്രധാനമാണ്.
ഉൾപ്പെടുത്തൽ അടുക്കൽ എങ്ങനെ പ്രവർത്തിക്കും?
ഒരു അറേ അടുക്കാൻ ഞങ്ങൾ ഇൻസെർഷൻ സോർട്ട് ഉപയോഗിക്കുമ്പോൾ, ലിസ്റ്റിലെ ഏറ്റവും ചെറിയ ഇനം കണ്ടെത്തി ശരിയായ സ്ഥാനത്തേക്ക് തിരുകുന്നതിലൂടെ അൽഗോരിതം ആരംഭിക്കുന്നു.
അത് അടുത്ത ചെറിയ ഇനം കണ്ടെത്തി ശരിയായ സ്ഥാനത്തേക്ക് തിരുകുന്നു, തുടങ്ങിയവ.
ലിസ്റ്റിലൂടെ ലൂപ്പ് ചെയ്ത് ഓരോ ഇനത്തെയും അതിന് മുമ്പുള്ളവയുമായി താരതമ്യം ചെയ്തുകൊണ്ടാണ് അൽഗോരിതം പ്രവർത്തിക്കുന്നത്.
ഇനങ്ങൾ തെറ്റായ ക്രമത്തിലാണെങ്കിൽ, അൽഗോരിതം അവയെ മാറ്റുന്നു. ലിസ്റ്റ് അടുക്കിയിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുന്നു, അങ്ങനെയാണെങ്കിൽ, അൽഗോരിതം അവസാനിക്കുന്നു.
പ്രായോഗികമായി, ചെറിയ അറേകൾ അടുക്കുന്നതിനുള്ള ഒരു ജനപ്രിയ ചോയിസാക്കി മാറ്റുന്ന കോഡിന്റെ ഏതാനും വരികൾ ഉപയോഗിച്ചാണ് ഉൾപ്പെടുത്തൽ അടുക്കൽ പലപ്പോഴും നടപ്പിലാക്കുന്നത്. എന്നിരുന്നാലും, ഈ അൽഗോരിതം ഉപയോഗിക്കുമ്പോൾ സമയ സങ്കീർണ്ണത പരിഗണിക്കണം.
ഉദാഹരണം:
തിരുകൽ സോർട്ടിംഗ് എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്നതിന്റെ ഒരു ഉദാഹരണം ഇതാ. ഞങ്ങൾ ഇനിപ്പറയുന്ന ശ്രേണി ഉപയോഗിക്കും:
1, 2, 3, 4, 5, 6
ലിസ്റ്റിലെ ഏറ്റവും ചെറിയ ഇനം കണ്ടെത്തി അൽഗോരിതം ആരംഭിക്കുന്നു, അത് 1 ആണ്. തുടർന്ന് അത് ശരിയായ സ്ഥാനത്തേക്ക്, ആദ്യ സ്ഥാനത്തേക്ക് തിരുകുന്നു. പിന്നീട് അത് അടുത്ത ചെറിയ ഇനം കണ്ടെത്തുന്നു, അത് 2 ആണ്. അത് ശരിയായ സ്ഥാനത്തേക്ക് തിരുകുന്നു, അത് രണ്ടാമത്തെ സ്ഥാനമാണ്.
അത് പിന്നീട് ഏറ്റവും ചെറിയ ഇനം കണ്ടെത്തുന്നു, അത് 3 ആണ്. അത് ശരിയായ സ്ഥാനത്തേക്ക് തിരുകുന്നു, അത് മൂന്നാം സ്ഥാനമാണ്.
അത് പിന്നീട് ഏറ്റവും ചെറിയ ഇനം കണ്ടെത്തുന്നു, അത് 4 ആണ്. അത് ശരിയായ സ്ഥാനത്തേക്ക് തിരുകുന്നു, അത് നാലാമത്തെ സ്ഥാനമാണ്, മുതലായവ. ലിസ്റ്റ് ഇപ്പോൾ അടുക്കിയിരിക്കുന്നു!
ലിസ്റ്റ് അടുക്കാൻ അൽഗോരിതം ആറ് താരതമ്യങ്ങളും സ്വാപ്പുകളും എടുക്കുന്നതായി ഉദാഹരണത്തിൽ നിന്ന് നമുക്ക് കാണാൻ കഴിയും. n എടുക്കുന്നതിനാലാണിത്2 n ഇനങ്ങളുടെ ഒരു ലിസ്റ്റ് അടുക്കുന്നതിനുള്ള താരതമ്യങ്ങളും സ്വാപ്പുകളും. ഈ സാഹചര്യത്തിൽ, n=6.
ഇൻസേർഷൻ സോർട്ട് ടൈം കോംപ്ലക്സിറ്റി എങ്ങനെ മെച്ചപ്പെടുത്താം?
ഇൻസേർഷൻ അടുക്കുമ്പോൾ O(n2), ക്വിക്ക്സോർട്ട് പോലെയുള്ള മികച്ച സോർട്ടിംഗ് അൽഗോരിതം ഉപയോഗിച്ച് ഇത് മെച്ചപ്പെടുത്താം.
Quicksort-ന് O(n log n) റൺടൈം ഉണ്ട്, അത് O(n) നേക്കാൾ വളരെ വേഗതയുള്ളതാണ്2).
എന്നിരുന്നാലും, ചില സന്ദർഭങ്ങളിൽ, ഇൻസെർഷൻ സോർട്ടിംഗ് ദ്രുതഗതിയിലുള്ളതിനേക്കാൾ വേഗത്തിലായിരിക്കും.
ഉദാഹരണത്തിന്, ലിസ്റ്റ് ഇതിനകം ക്രമത്തിലാണെങ്കിൽ, തിരുകൽ സോർട്ടിംഗിന് ദ്രുതഗതിയിലുള്ളതിനേക്കാൾ കുറച്ച് സമയമെടുക്കും.
പ്രായോഗികമായി, ചെറിയ അറേകൾ അടുക്കുന്നതിനുള്ള ഒരു ജനപ്രിയ ചോയിസാക്കി മാറ്റുന്ന കോഡിന്റെ ഏതാനും വരികൾ ഉപയോഗിച്ചാണ് ഉൾപ്പെടുത്തൽ അടുക്കൽ പലപ്പോഴും നടപ്പിലാക്കുന്നത്.
എന്നിരുന്നാലും, ഈ അൽഗോരിതം ഉപയോഗിക്കുമ്പോൾ സമയ സങ്കീർണ്ണത പരിഗണിക്കണം.
സമയ സങ്കീർണ്ണതകൾ
ഏറ്റവും മോശം അവസ്ഥ O(n2):
അറേയുടെ വലുപ്പത്തിനനുസരിച്ച് സമയ സങ്കീർണ്ണത വർദ്ധിക്കുന്നു. ഇത് n എടുക്കുന്നു2 n ഇനങ്ങളുടെ ഒരു ലിസ്റ്റ് അടുക്കുന്നതിനുള്ള താരതമ്യങ്ങളും സ്വാപ്പുകളും.
ഉദാഹരണത്തിന്, നമുക്ക് 1000 വലുപ്പമുള്ള ഒരു ശ്രേണി ഉണ്ടെങ്കിൽ, അറേ അടുക്കാൻ അൽഗോരിതം 1,000,000 താരതമ്യങ്ങളും സ്വാപ്പുകളും എടുക്കും.
മികച്ച കേസ് സങ്കീർണ്ണത O(n):
സമയ സങ്കീർണ്ണത ഇൻപുട്ട് അറേയുടെ വലുപ്പത്തിന് തുല്യമാണ്. ഐ
n ഇനങ്ങളുടെ ഒരു ലിസ്റ്റ് അടുക്കാൻ t n താരതമ്യങ്ങളും സ്വാപ്പുകളും എടുക്കുന്നു. ഉദാഹരണത്തിന്, വലുപ്പം 5-ന്റെ ഒരു ശ്രേണി പരിഗണിക്കുക. അറേ അടുക്കുന്നതിന് അൽഗോരിതം അഞ്ച് താരതമ്യങ്ങളും സ്വാപ്പുകളും എടുക്കും.
ശരാശരി കേസ് സങ്കീർണ്ണത O(n2):
ഈ കേസിലെ ഏറ്റവും മോശമായതും മികച്ചതുമായ സങ്കീർണതകൾക്കിടയിലാണ് സമയ സങ്കീർണ്ണത.
ഇത് n എടുക്കുന്നു2 n ഇനങ്ങളുടെ ഒരു ലിസ്റ്റ് അടുക്കുന്നതിനുള്ള താരതമ്യങ്ങളും സ്വാപ്പുകളും.
അങ്ങനെ, ഇൻസെർഷൻ സോർട്ടിംഗ് ഒരു സ്ഥിരതയുള്ള സോർട്ടിംഗ് അൽഗോരിതം ആണ്.
എന്തുകൊണ്ട് ഇൻസെർഷൻ സോർട്ട് സ്ഥിരതയുള്ളതാണ്?
ഇൻപുട്ട് അറേയിലെ തുല്യ മൂലകങ്ങളുടെ ക്രമം സംരക്ഷിക്കുന്നതിനാൽ ഉൾപ്പെടുത്തൽ അടുക്കൽ സ്ഥിരതയുള്ളതാണ്.
ഡാറ്റ വീണ്ടെടുക്കൽ അല്ലെങ്കിൽ സാമ്പത്തിക വിശകലനം പോലുള്ള നിരവധി ആപ്ലിക്കേഷനുകൾക്ക് ഇത് പ്രധാനമാണ്. ഉദാഹരണത്തിന്, നമുക്ക് സംഖ്യകളുടെ രണ്ട് ലിസ്റ്റുകൾ ഉണ്ടെങ്കിൽ അവ താരതമ്യം ചെയ്യാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, മൂലകങ്ങളുടെ ക്രമം സംരക്ഷിക്കപ്പെട്ടിട്ടുണ്ടെന്ന് ഉറപ്പാക്കേണ്ടതുണ്ട്.
ലിസ്റ്റുകൾ അടുക്കിയിട്ടില്ലെങ്കിൽ, ഞങ്ങൾ അവയെ കൃത്യമായി താരതമ്യം ചെയ്യില്ല.
നിങ്ങളുടെ അഭിപ്രായങ്ങൾ രേഖപ്പെടുത്തുക