Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
qsort [] = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qosrt (filter (>= x) xs)
qsort [] = []
qsort (x:xs) = qsort (filter (<x) xs) ++ [x] ++ qsort (filter (>= x) xs)
quicksort x =
quicksort' x []
where
quicksort' [] y = y
quicksort' [x] y = x:y
quicksort' (x:xs) y = part xs [] [x] []
where
part [] l e g = quicksort' l (e ++ (quicksort' g y))
part (z:zs) l e g
| z > x = part zs l e (z:g)
| z < x = part zs (z:l) e g
| z == x = part zs l (z:e) g
public static IEnumerable<double> s(IEnumerable<double> arr)
{
if(arr.Count()<=1)
return arr;
var c = arr.First();
var sMin = arr.Where(x => x < c);
var sMax = arr.Where(x => x > c);
return s(sMin).Union(new []{c}).Union(s(sMax));
}
public static IEnumerable<double> s(IEnumerable<double> arr){
var c = arr.FirstOrDefault();
return arr.Count() <= 1 ? arr : s(arr.Where(x => x < c)).Union(new[] { c })
.Union(s(arr.Where(x => x > c)));
}
IEnumerable<double> sort(IEnumerable<double> a){
double c = a.FirstOrDefault();
return a.Count() <= 1 ? a : sort(a.Where(x => x < c)).Union(new[]{ c })
.Union(sort(a.Where(x => x > c)));
}
function mine_quicksort($seq) {
$length = count($seq);
if ($length == 0) {
return $seq;
}
$x = $y = array();
$k = array_shift($seq);
$x = array_filter($seq, create_function('$s', 'return $s <= '.$k.';'));
$y = array_diff($seq, $x);
return array_merge(mine_quicksort($x), array($k), mine_quicksort($y));
}
function mine_quicksort($seq) {
$f = array('count', 'array_shift', 'array_filter', 'create_function', 'array_diff', 'array_merge', 'mine_quicksort');
$l = $f[0]($seq);
$r = $seq;
if ($l != 0) {
$x = $y = array();
$k = $f[1]($seq);
$x = $f[2]($seq, $f[3]('$s', 'return $s <= '.$k.';'));
$y = $f[4]($seq, $x);
$r = $f[5]($f[6]($x), array($k), $f[6]($y));
}
return $r;
}
function q($s) {
$f = array('count', 'array_shift', 'array_filter', 'create_function', 'array_diff', 'array_merge');
$l = $f[0]($s);
$r = $s;
if ($l != 0) {
$x = $y = $m = array();
$k = $f[1]($s);
$x = $f[2]($s, $f[3]('$s', 'return $s <= '.$k.';'));
$y = $f[4]($s, $x);
$m[] = $k;
$r = $f[5](q($x), $m, q($y));
}
return $r;
}
function q($s) {
$l = count($s);
$r = $s;
if ($l != 0) {
$x = $y = $r = array();
$d = $f = 0;
$k = $s[0];
for($i=1; $i < $l; $i++) {
if($s[$i] <= $k) {
$x[] = $s[$i];
$d++;
} else {
$y[] = $s[$i];
$f++;
}
}
$a = q($x);
$b = q($y);
for($i=0;$i<$d;$i++){
$r[] = $a[$i];
}
$r[] = $k;
for($i=0;$i<$f;$i++){
$r[] = $b[$i];
}
}
return $r;
}
def sort(xs: Array[Int]): Array[Int] =
if (xs.length <= 1) xs
else {
val pivot = xs(xs.length / 2)
Array.concat(
sort(xs filter (pivot >)),
xs filter (pivot ==),
sort(xs filter (pivot <)))
}
def qsort(xs: List[Int]): List[Int] = {
xs match {
case List() => xs
case _ => qsort(for(x <- xs.tail if x < xs.head) yield x) ::: List(xs.head) ::: qsort(for(x <- xs.tail if x >= xs.head) yield x)
}
}
Программистская графофилия и языки программирования