From 9e5fc484c7b9f4bcf890b4b7244f482e78d10803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Srbeck=C3=BD?= Date: Wed, 17 Oct 2007 19:19:46 +0000 Subject: [PATCH] Added a QuickSort program --- tests/QuickSort/AssemblyInfo.cs | 31 ++++++++++++++ tests/QuickSort/Program.cs | 49 ++++++++++++++++++++++ tests/QuickSort/QuickSort.csproj | 36 ++++++++++++++++ tests/QuickSort/QuickSort.sln | 18 ++++++++ tests/QuickSort/bin/Debug/QuickSort.exe | Bin 0 -> 4608 bytes tests/QuickSort/bin/Debug/QuickSort.pdb | Bin 0 -> 13824 bytes tests/QuickSort/bin/Release/QuickSort.exe | Bin 0 -> 4096 bytes 7 files changed, 134 insertions(+) create mode 100644 tests/QuickSort/AssemblyInfo.cs create mode 100644 tests/QuickSort/Program.cs create mode 100644 tests/QuickSort/QuickSort.csproj create mode 100644 tests/QuickSort/QuickSort.sln create mode 100644 tests/QuickSort/bin/Debug/QuickSort.exe create mode 100644 tests/QuickSort/bin/Debug/QuickSort.pdb create mode 100644 tests/QuickSort/bin/Release/QuickSort.exe diff --git a/tests/QuickSort/AssemblyInfo.cs b/tests/QuickSort/AssemblyInfo.cs new file mode 100644 index 000000000..0386c7e48 --- /dev/null +++ b/tests/QuickSort/AssemblyInfo.cs @@ -0,0 +1,31 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("QuickSort")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("QuickSort")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// This sets the default COM visibility of types in the assembly to invisible. +// If you need to expose a type to COM, use [ComVisible(true)] on that type. +[assembly: ComVisible(false)] + +// The assembly version has following format : +// +// Major.Minor.Build.Revision +// +// You can specify all the values or you can use the default the Revision and +// Build Numbers by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/tests/QuickSort/Program.cs b/tests/QuickSort/Program.cs new file mode 100644 index 000000000..4cb22fe3b --- /dev/null +++ b/tests/QuickSort/Program.cs @@ -0,0 +1,49 @@ +static class QuickSortProgram +{ + public static void Main(string[] args) + { + int[] intArray = new int[args.Length]; + for (int i = 0; i < intArray.Length; i++) { + intArray[i] = int.Parse(args[i]); + } + QuickSort(intArray, 0, intArray.Length - 1); + for (int i = 0; i < intArray.Length; i++) { + System.Console.Write(intArray[i].ToString() + " "); + } + } + + /// For description of this algorithm see: + /// http://en.wikipedia.org/wiki/Quick_sort + public static void QuickSort(int[] array, int left, int right) + { + if (right > left) { + int pivotIndex = (left + right) / 2; + int pivotNew = Partition(array, left, right, pivotIndex); + QuickSort(array, left, pivotNew - 1); + QuickSort(array, pivotNew + 1, right); + } + } + + static int Partition(int[] array, int left, int right, + int pivotIndex) + { + int pivotValue = array[pivotIndex]; + Swap(array, pivotIndex, right); + int storeIndex = left; + for(int i = left; i < right; i++) { + if (array[i] <= pivotValue) { + Swap(array, storeIndex, i); + storeIndex = storeIndex + 1; + } + } + Swap(array, right, storeIndex); + return storeIndex; + } + + static void Swap(int[] array, int index1, int index2) + { + int tmp = array[index1]; + array[index1] = array[index2]; + array[index2] = tmp; + } +} \ No newline at end of file diff --git a/tests/QuickSort/QuickSort.csproj b/tests/QuickSort/QuickSort.csproj new file mode 100644 index 000000000..191c2a69c --- /dev/null +++ b/tests/QuickSort/QuickSort.csproj @@ -0,0 +1,36 @@ + + + {9C2A1C63-38EA-42CA-BDDD-7D80D9592893} + Debug + AnyCPU + Exe + QuickSort + QuickSort + + + bin\Debug\ + True + Full + False + True + DEBUG;TRACE + + + bin\Release\ + False + None + True + False + TRACE + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/QuickSort/QuickSort.sln b/tests/QuickSort/QuickSort.sln new file mode 100644 index 000000000..8ee47e87f --- /dev/null +++ b/tests/QuickSort/QuickSort.sln @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +# SharpDevelop 3.0.0.2707 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuickSort", "QuickSort.csproj", "{9C2A1C63-38EA-42CA-BDDD-7D80D9592893}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9C2A1C63-38EA-42CA-BDDD-7D80D9592893}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C2A1C63-38EA-42CA-BDDD-7D80D9592893}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9C2A1C63-38EA-42CA-BDDD-7D80D9592893}.Release|Any CPU.Build.0 = Release|Any CPU + {9C2A1C63-38EA-42CA-BDDD-7D80D9592893}.Release|Any CPU.ActiveCfg = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/tests/QuickSort/bin/Debug/QuickSort.exe b/tests/QuickSort/bin/Debug/QuickSort.exe new file mode 100644 index 0000000000000000000000000000000000000000..7e3f98ac5680228332bc159940796ae28b55d59b GIT binary patch literal 4608 zcmeHKU2Ggz75?UDe_}hE7z-zrXc&`H7F!)0$EN9z=sI3EHTkjQb)2@bNM?7h*Awr~ zY-eUu8@1qy@=&QHAVqoLArgJ4goL0HNU17SiVzPVQADLS5Af2LN`0ur3qk@_F5kT~ z>-EM~!!zx5=DX+To^#JR_wKznr=R^P3;-s-Pd^3TWG`Dm;b+4J)w!>}mBa7$yfgHs zcIus>g%vlnnt@*noQ73#JkO7;vao`dXStqLoGn=mzbfp#dwU*8T+dAdr!)hLFAkn) z&-MXwTCbJ`dMHW9QajJy;#c4&!D6S!ag$Q<%N`s2D3{GZAqDJL|2lob#zXMlH-Ph! zE&vB*A?|LMfIiArIPNQV>pqLO0A{e&vgDuI;s84mYZ3WzIfy!yYZ5m()hytW9fU!J zoQkbLLN1gHXj>~VdOHwxp97WZ5|z>yQ{UbS!13+8r1#6ZvdP$Vq_8mre8j40PkjbVuma-R5DKcMe|Y z(G4@5=hCKobtBWBMW+)po)E*d9T+umhCRnI?$q@jJ!R%u>okmBqi0u&tzkz4227Q;7(uG+%%Q;ecj9?%Dp4lL+3I+xfFCq-v)gfx_SMkZl-SzA1{6P zxTdNduicd~d(@s7eR%9)8gM=8L>cDc9{|_czbffc6u4e3lp`#zmE1yy&y|pmcRLQB zI5$(I>=^ksr0#g#FSD18=Guub>)0ci|7b@ssMZQ!igjvxF(U>F$X;%@WG|5FNg_?- z5sa}mO?;2|Yg{A#UeSM7_%DV1n$!*}oKjd;_(O%i)NXM4x78;5So^b@EK7k) zL>6$BfTH5UZ@DYWR3TG6aRrriThd6@gh)1wa z{5D>~g#IY;G5rbhC-o`D{j5F%8w30`**L6lMB!01D0xiLQwmQiEGhW~yg+RQKPIl? zD);m`Tp(|5#8o`hyLyA^vrY43GFwe!21$GTv|nx2#dmPF_nOvsstmq?AG0ATbfS5Q-}+4bWE;tD6rtiXA_c+`B$8XYvhG~UEqA+a#@`qaMn>5 z%Mnze(R8o)(TrCWYj7nVi97Y%H!QU&FaDx=>&((03)fy7_|5Iv7ypUut?w@_-Z%ci zD?ACb`*Rr>+WlEJm|4}EmZs$-=qW<~ge0?crkT*PITE=P^jt1SR?DR`295Mo#vo=g zDd~upg_cdJlP9NP&(=?Y=dFf}l9P~UFK|d6O$++q`M_zO@xAG_icpKXuoC#shiWWG zwcj}MS10e9m-(i6nTOGQsaX2=t-;HGY5jHbrPtp*`Kv!Y`CDlt9$l)6O0r^0kqD!3 zX)BB+zkGQ~Ep|s{H>+jZeL}zOc1YguR-5bY+joDr^x~8sOs@&`BUV3fA?#{h-a~vL zejQdpQD4CSV+AzzPT~E!(VboVLK)pfF2~8YW<7j<|n9X*=(agjJn<+i3LaAfO+YZzMsV9+u%N{R8UN zvOujvX-K_;h~s>6aeKqG7^}vZcmz@7@dn-L=@b44HH>ckjiXE&cwD_U+T)9yJ>(55 z{WQDgIg1u$72d-o&K*z(6tIsz+qR3e4QSno?FjGfQGR1MhH<_OY#b#uL793Ga_$`M zWww#B^_W|o^>ldq3;N$Vr%m~q(&c&IYdA%^rmUtIRg*6e8F>vWDn5%oifWG8L@ui% z=V-?)xqHtwu4*(#A3mzALxtWuQSKI}oLAPS+ve^H-K#!NDIb%pX~;YqT(LScw76Tk bD}66NEW_ucS@HinMvr|y()}XK?h5=D%-%p@ literal 0 HcmV?d00001 diff --git a/tests/QuickSort/bin/Debug/QuickSort.pdb b/tests/QuickSort/bin/Debug/QuickSort.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0ef5b30bf4d70b19e5bb1deacb150c97b7ba8548 GIT binary patch literal 13824 zcmeHMTWpj?6h42uU0O=f1-b|*ZfgrIEqlQV1U01=&<4sSC5Wa8UA9|Tpu2TD(FcR#gQyR9Nf4512mupsV2IB?807(q@&E?W@0)*SS=v%AmI&MbWY2#8 zoH=tjXXea5GkL=6ixPxiXWE-6S zJn%r@KMsv%56l-C&E}7K+e^O*S(pPN4{HXLVM@4wg&F)gl-C|8%xmi$<8I}Feg2TO zW~cXg3yN31@NW8U>km!44*t0G(5WSdO}|BurSH7{vZw2e=h!Tf%f&6nIu6Dce&4x! z+2{Sw{j@9j!G3NVNN4}v^z|o?)+ToU`PuvLU3_zoEp`4M6c7BRJ8JMj>9^C*|K@>f z7p`64yL~mQi7sgGj7AdOJ+Up(WP3WAN~hXaZH+}Xw6g^>Ib0#+69oSl57A z_r@dN{3jg|()l8>c)BT>3~#5L^)>*Hf*%Ku1+!i+>LuP#4(S4P z&6Md!nr+Or^@c6Oa(;2SPBor8armXPEk~*Ewy7S%OJM379pfvM8`4*_s{>{F!HgxWxvFlK!y{uZ>%*Sd ztBG_=yfeDZ9s?8^oWDHUYnO8?TW-sKYelcN-<@lJhhD&!vqDV}x!=Y!+m@B#WIC3P zB`{fNM?E@Q4+ZKQ9ooTaz`6E^a_0*DKOkStr4Z!C57+ZWlpofFw`|1%!+iE7H$Rn5 zB%|6-%D?DW4HN>kS z#UR5uasI-!%y^xC2sj4vslZ|&zZFrBF-)8Rq<$^11Zl=7>dNrmk@5vP{WP!?@)v<< zBg6Lw_1ZN?fYk2-mO);CQ7V*Lv^fD1k=cxDsfNsjn5mPA!j?IffdM-62I;Ua`eQHH zj!{d+E6daF*Z2TJOUfS;fv`pOhyGw1eG>RCgJ&rRJ_hsx8Nc{umU$BR2#{;s6rkOI zdYk%QVXs~CEVvdtOZCz8i{oU+j-}#=Wpc*}ZK-}u2V$(aeyZ{D0Xc^%fbb zJDsT|fr|@aL=_gkD3G?lrLjUI$C~n1jbCZpsqrI?)ESO$mCv%iVJa9@9t+e+(xCcB zvT{?G&pg~MjGA*bQ!Pq5}5aHk>(Yxb?X+# z)5-1YRwl4Dm+cdz+Uz+H|MmgEE44YY;9PF+gLo-;wJ!I&R?a5a=-YCwKPN{Y>yDMP zY0T;?xz@+a)AWUVBTMYflF_wgT9=FU$Pixz4mlpkTMzgUV>f%7n7sjmpjgGCy$8r! zXACwh@8h3i+*=Z|xbML^=Z#XCd19QbFXEXi4aPoNcuq5f^9;`}p!0nS@MnJ=%>6!S za)>2z73(#rO0C->Cr_WuZnLsiCHi(*nwB(#Lh~2%j5zy<|DvUCbgthssfzR;E8$s< zd((l$Jf4?$=P;0%$FqYuH{|9Q;1p1%dS_+7ck-JE=Rb-5GRU)siHO_3Iu|i_?z$OP zXA>*8saQ2+Kbzcpg2R3PUxO9{%VP1(E%B~|1mfZDXi5U9WF)XL8t#lH*KbKgHrs+O zd@)D`hH}D9zY1Wxq5Q|wKZ#ok%6Qu5iH*dSsS=Fa1&8j52Y6?}efq~>#`ys?DMhy7 zIRjn`t^qH?5Tp?U3&B4l&5$k!bHpZrc^ATw<4AGQ}CJ} literal 0 HcmV?d00001 diff --git a/tests/QuickSort/bin/Release/QuickSort.exe b/tests/QuickSort/bin/Release/QuickSort.exe new file mode 100644 index 0000000000000000000000000000000000000000..2b829a6ed08565eeca24b0da19a8265d75ac68ab GIT binary patch literal 4096 zcmeHKU1%It6#nka>`#+)Z78M{v`%QOF@a^9rfRY3wn?nfv`M>bOs!~VH`8?N?94hd zTNCjof}lQV6-pmO`s$nbAS$9Dz6(By;EPWpD)=IzBG&Jo*=@E>u)f!uz2Et}_ndRj zow;{%_^~%(0?HP)vYY}@32a9;nq(I_+ZnQgCDDzF9)lqz1VI>;Zo!@?79;K zVPe-@J8A{C7ub`t6}u5Gy2Z_#dxqMs=ca%eW#Yv11BW`%zC%Ivsyx6SvZ;2*?W8t) znO%cTVx)PKll(QsDm(SMnJ8y~E%IBVZ805!uXX_sYrYI@*M+#codo)>*8LaRPSfuU z%~O7`BajvocR3*)$`NdKz1DW#$QX7-4+SZbV1rFuhe&Y@Ab*7+t26{(t z$mWdP+ryig{Kee1h2C8D4R7qH>;TEO z%=sQ8V-2&MS+m#d8yzt6=d-0gBbOJQ&QU^IW8WKAF4fVAj?J9(HuM`NeVB%I{-R-J zFOJ|~<)MR0DwpoV*|B1&xVLoI*j=2!+WN#TOnT=Fz;mQk%~z7h3zlL%;ww7UkHOAI zD)@#xmyMl=9+{pb{ekj3T0ZE9HB#L;T^+j7z$PvHsrFz%>MrwWlSieORQu773|(~g zRWy2!^%n2L7_o^bi0|PX@eAR<75q)GUuo-z;DlgJ@I}E7)diKs*Mfg2?X6&FyqTz5 z8cEk?Rc*m`YBJ;%=4@@ffHLz__@FIKF=GQii}V&|IX;8ZpdR@aj?<>stMDtGDvWTU z21-N|dx`5c7VhcNKOiFy8~u02<{f#CwM?`TJWggaY2VT3XfRA)3~I@ zi5X)bR&b+nFJ8isF@YksvTjA}6dV=YgGFlY5q?7OVZn;%PavkXj_3F;&Z3IPV6CQ= z+tJ&&z$LTsu++PLxhZ)MMBINkTx|L7eK^|k>SroploZ`%cTJj0Ph~XXdKmd$4V9HR zaT}PeJ>}LD9Co~5Z7}AXDDe_63{ZK-X|~4}kGZFO4%X@eaqKo~{>r=?#gq>ue2i*tswClZgDzD+$d~T+~}-VcVkS1jd?HjYQDQRvEy-~}U2mRr<9g&ZH#SziqO3OivTE z30G2g5>`8iL*K=tk;e^kqR3f+@19B^B}3CY8z$4iqPq-FQG>?SA)N?V{7k2QvO6mP#UAwc|q7Z!_DtdJg(T~S_)uqn>rx1#LNN&0+tq!#@?G6%-3n``T zeamL9iaGHmpe4Z42A=+s8>YllKK&ap@+PHP5*bXRqb9n|DBoeGGSFoL?(N>>;<8x_y%Rety&`S#2V71Fp?yJsmVC z1M6cJsb3b`FbvL}A-^QECYV)|x0cR)38y7Ln?5Eb#%x=!tD|Fd)~ls!#~PO!&Cy55 z+pWbaBwbl