From 578bfa27987bfeb7ca57f2d98fb807005145d206 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Wed, 29 Nov 2023 21:34:39 +0000 Subject: [PATCH] implement quickselect function --- scratchpad/quickselect/quickselect | Bin 16704 -> 16984 bytes scratchpad/quickselect/quickselect.c | 78 ++++++++++++++++++++++++++- 2 files changed, 77 insertions(+), 1 deletion(-) diff --git a/scratchpad/quickselect/quickselect b/scratchpad/quickselect/quickselect index e3c99f2a3630f91dbf4ae34289e1eeb650fd3d06..ae25e1c8cacc3a5009ac00b5c55a7d365c86ea13 100755 GIT binary patch literal 16984 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 delta 1945 zcmZWqeP|R%6rb6jUUBSQxac6v4xrzM8QDAm2&A{r_!2&P^3_#P*7=0{;;S~A+fF7H@CA<>>fM6 z_xtUeH#2YE%w0cBvj^#zuee7hxktBv9B3L}eKv1iwCKDz{;MWYi#()IOvC;jPHiMS z0)=rJkh%oRxd(=+s?1bdY$nbT&eNZYJwb~-K`0f<;hdm{GQ2~Ecd*gmVGWQR-JX-@ z?|#zRz3ZZLbECR^!e_kV-uNke;8^8#VPG~rhJ*~~S{F<^R?;}!bZ9gHic_U;qOH=M ztOeQWq!lnFcnbS=z5PyjUw^oP3=F3B!4>Cf_}jUq${JX}u|~Dx{UllDrdgh5NKd z$ej7YXRul>^`J3{yeP1dko!gDkB|?-DY?9}7bj6dEk!(sbZxjU%u)!~LME|y&fBkw`s+0+$235-QRU&F+@WoE!Q2bUH zO=IMbRK9U6{wI=IziFDY+p+mU{0;h*%9lsu7Yb3o|JXD$EcjcOd&5P6!^|YTV{GP$ zH`+(z>(&sGc)e}pmqcgV$iu{IiIIOgjnV2gD8JfX^{;X0wtKewar%qrlG0aaT;hqK zv%}cY*ViB1-@mtSdx%A&%N*-;#3lIV-!;t?;u^%y5t|XeL2O6dhFE{kG_N9VL%fZ6 z6|s)O?ob7th4GLoj@>cMAWViTJC35oD;pgN@!-osA9zMDL+v=eNgQGsBH2_ZeWBXi=nBrL6a z)d89XC9Kf_NQ49QASA<@lHsMq&j#_qL^z<_;Pu4v!JZ&o3vZzWLRvtcb6VPhY4$S< zk~Jl8#UX4oUu=P5y(s9Bn4PxtcEG0J>LT{v&>M)E- z5!nh;_#IDu#OqYZtOB-Ku2C+{vs`?kR$iojIQo`bnM>o@Lpx_#BN6Y;7DdleD`&=`|LY`d>+e%7&#NGzm|7!~G)di>mr|VW=7BALCVR^mB@4*9FEU?_z zjuvi#;d+(shN*g0d>?&+cpH__kKrb&CqZdY^UkuKc<~GJK~uA)4DjNz@gQ8od>?NvQ|z*{u@I)wpV${4#~>^;Yf^BLMdGo= zVz!Ig2Sf1>;dh73E^e5NF9o$lk#wF39U?6;X)9-2k*$PNEi$ZXk%c1^zH8AWo&zk< zxt5o3kA~I-psQ6@?9H`tBMh}_ie0ESx?#FigPpnz^Q|?KT}D}m=rQTZf7~8Dws #include +void swap_pointers(double *x, double* y){ + double tmp = *x; + *x = *y; + *y = tmp; +} + +void swap_in_array(int i, int j, double xs[]){ + double tmp = xs[i]; + xs[i] = xs[j]; + xs[j] = tmp; +} + +void array_print(double xs[], int n){ + printf(" ["); + for(int i=0; i