MATHEMATICS

Jumat, 15 April 2011

ഡാന്‍സിലൂടെ 'സോര്‍ട്ടിങ് വിദ്യകള്‍.'.!


ചെന്നൈയിലെ ഒരു പ്രധാന ഐടി കമ്പനിയിലെ ടെക്നിക്കല്‍ ആര്‍ക്കിടെക്റ്റ് ഗ്രൂപ്പില്‍ ജോലിചെയ്യുന്ന ശ്രീ സന്തോഷ് തോട്ടുങ്ങലിനെ അറിയുമോ..? സ്വതന്ത്ര, ഓപണ്‍സോഴ്സ് പ്രോജക്ടുകളിലെ, പ്രത്യേകിച്ച് ഇന്ത്യന്‍ ലാങ്വേജ് കംപ്യൂട്ടിങ്ങിലെ സന്തോഷിന്റെ സംഭാവനകളെ ആര്‍ക്കാണ് മറക്കാന്‍ കഴിയുക? സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ്ങിന്റെ ഈ അമരക്കാരന്റെ ധ്വനി എന്ന ടെക്സ്റ്റ് ടു സ്പീച്ച് സിസ്റ്റത്തിനായിരുന്നു 2008 ലെ FOSS അവാര്‍ഡ്. സന്തോഷിന്റെ സംഭാവനകള്‍ വിസ്തരിച്ച് അധികം സമയം കളയുന്നില്ല. അതൊക്കെ വഴിയേ ആകാമല്ലോ..!ഇന്നത്തെ ഈ പോസ്റ്റ് കഴിഞ്ഞദിവസം അദ്ദേഹം മെയില്‍ ചെയ്ത് തന്നതാണ്. രസകരവും വിജ്ഞാനപ്രദവും അത്ഭുതകരവുമായി ഒറ്റവായനയില്‍ തോന്നിയതുകൊണ്ടാണ് മുന്‍ഗണനാക്രമങ്ങളൊക്കെ മാറ്റിവെച്ച് ഇത് പബ്ലിഷ് ചെയ്യുന്നത്. വായിച്ചു നോക്ക്..നിങ്ങളും എന്നോട് യോജിക്കാതിരിക്കില്ല.. കമ്പ്യൂട്ടര്‍ സയന്‍സ് പഠിക്കുന്ന എതൊരു വിദ്യാര്‍ത്ഥിയും അല്‍ഗോരിതങ്ങളെപ്പറ്റി പഠിക്കാന്‍ തുടങ്ങുമ്പോള്‍ നിരവധി സോര്‍ട്ടിങ്ങ് വിദ്യകളെപ്പറ്റി മനസ്സിലാക്കേണ്ടതുണ്ടു്. ഇന്‍സേര്‍ഷന്‍ സോര്‍ട്ട്, ഹീപ് സോര്‍ട്ട്, ബബിള്‍ സോര്‍ട്ട്, ക്വിക് സോര്‍ട്ട്, ഷെല്‍ സോര്‍ട്ട് എന്നിങ്ങനെ നിരവധി.. ഇതിലെ ഷെല്‍ സോര്‍ട്ട് അല്‍ഗോരിതം വളരെ മനോഹരമായ ഒരു ഹംഗേറിയന്‍ നാടോടി നൃത്തത്തിലൂടെ താഴേ വീഡിയോയില്‍ അവതരിപ്പിച്ചിരിക്കുന്നതു നോക്കൂ..



സ്കൂള്‍ക്ലാസുകളിലെ പഠനവിഷയങ്ങള്‍ മാത്രമല്ല, കമ്പ്യൂട്ടര്‍ സയന്‍സിലെ ഇത്തരം കാര്യങ്ങളും വളരെ ലളിതമായി , മനോഹരമായി അവതരിപ്പിക്കാം.
വീഡിയോ കണ്ടവര്‍ക്കായി വളരെ ലളിതമായി ഈ സോര്‍ട്ടിങ്ങ് അല്‍ഗോരിതം(നൃത്തത്തില്‍ അവരവതരിപ്പിക്കുന്നതെന്തെന്നും) വിശദീകരിക്കാന്‍ ശ്രമിക്കാം.(വിക്കിപീഡിയയിലും ഇന്റര്‍നെറ്റിലുമൊക്കെ ഉണ്ടു് )
3 0 1 8 7 2 5 4 9 6 എന്ന ക്രമത്തിലുള്ള 10 അക്കങ്ങളാണു് ഈ നൃത്തത്തില്‍ 5 ആണ്‍കുട്ടികളും 5 പെണ്‍കുട്ടികളും അവതരിപ്പിക്കുന്നതു്.
5-സോര്‍ട്ട് എന്ന സ്റ്റെപ്പാണു് ആദ്യം. അതായതു്, ഈ 10 അക്കങ്ങളെ അഞ്ചെണ്ണമുള്ള രണ്ട് കൂട്ടമാക്കുക
3 0 1 8 7
2 5 4 9 6
ഇനി ഇതിലെ ഓരോ നിരകളിലെയും(കോളങ്ങള്‍) അക്കങ്ങള്‍ ക്രമത്തിലാക്കുക. വീഡിയോയില്‍ ആറാമാത്തെ അംഗം ഒന്നാമത്തെ അംഗവുമായി കാണുന്ന ദൃശ്യം.
2 0 1 8 7
3 5 4 9 6
ഇങ്ങനെ ഓരോ കോളങ്ങളും മാറ്റുമ്പോള്‍
2 0 1 8 6
3 5 4 9 7
ഇതോടെ 5-സോര്‍ട്ട് എന്നെ സ്റ്റെപ്പ് കഴിഞ്ഞു. ഈ അക്കങ്ങളെ ഇനി നിരത്തി എഴുതുക
2 0 1 8 6 3 5 4 9 7
ഇനി 3-സോര്‍ട്ട് സ്റ്റെപ്പ് ആണു്. അതായതു് മൂന്നക്കങ്ങളുള്ള വരികളാക്കുന്നു
2 0 1
8 6 3
5 4 9
7
ഇനി കോളങ്ങള്‍ എടുക്കുക: ആദ്യത്തെ രണ്ടു വരിയിലെ അക്കങ്ങള്‍ ക്രമീകരിക്കുക. അവ ക്രമത്തില്‍ തന്നെയാണു്.
2 0 1
8 6 3
5 4 9
7
രണ്ടും മൂന്നും വരികള്‍ ക്രമത്തിലാക്കുക
2 0 1
5 4 3
8 6 9
7
ഈ സ്റ്റെപ്പില്‍ 5 എന്ന പെണ്‍കുട്ടി 8 നെമാറ്റി വന്ന് 2 നോടു സംസാരിച്ച് പോവാതെ നില്‍ക്കും, കാരണം 2 ഉം 5 ഉം ക്രമത്തില്‍ തന്നെയാണല്ലോ.
അങ്ങനെ എല്ലാം തീരുമ്പോള്‍ ഇങ്ങനെ കിട്ടും
2 0 1
5 4 3
7 6 9
8
ഇതോടെ 3-സ്ടെപ് തീര്‍ന്നു.
നിരത്തിയെഴുതുമ്പോള്‍
2 0 1 5 4 3 7 6 9 8

അടുത്തതു് 1-സ്ടെപ് ആണു്. ഒരു വരിയില്‍ 1 വീതം അക്കങ്ങളെഴുതും
2
0
1
5
4
3
7
6
9
8
തൊട്ടടുത്തുള്ള ഓരോ ആളും ഇടതുവശത്തുള്ളവരുമായി ക്രമീകരിച്ച് മുന്നേറുന്നതു കാണുക. അവസാനം
0 1 2 3 4 5 6 7 8 9
എന്ന ക്രമത്തിലെത്തുന്നു. സംഘാംഗങ്ങള്‍ വട്ടത്തില്‍ നൃത്തം വെയ്ക്കുന്നു.

ഇതു പോലെ ഈ യൂട്യൂബ് ചാനലില്‍ ബബിള്‍ സോര്‍ട്ടും സെലക്ട് സോര്‍ട്ടും ഒക്കെയുണ്ടു്. വിശദീകരിക്കാന്‍ എനിക്കു സമയമില്ല. വിക്കിപീഡിയേല്‍ പോയി വായിക്കുക :)
ഇത്രയും രസകരമായ രീതിയില്‍ ഇതു കാണുമ്പോള്‍ ഈ അല്‍ഗോരിതങ്ങള്‍ ഞാന്‍ കോളേജില്‍ പഠിച്ചതെത്ര ബുദ്ധിമുട്ടിയായിരുന്നു...
കമ്പ്യൂട്ടര്‍ സയന്‍സ് പഠിക്കുന്ന അനുജന്‍മാരോടും അനുജത്തിമാരോടും: നിങ്ങള്‍ക്കിതു കണ്ടിട്ടു് നമുക്കും ചെയ്യാമെന്നു തോന്നുന്നില്ലേ!, സോര്‍ട്ടിങ്ങ്, സെര്‍ച്ചിങ്ങ്, ഗ്രാഫ്, ട്രീ തുടങ്ങി എത്രയെത്ര അല്‍ഗോരിതങ്ങള്‍... നമ്മുടെ മനോഹരമായ നൃത്തരൂപങ്ങളും.... എന്താണാലോചിക്കുന്നതു്?

Tidak ada komentar:

Posting Komentar