Для получения полного доступа
зарегистрируйтесь.
RSS

Все сниппеты с тэгом «sort»



Gravatar image
maxyc
  • Репутация: 29
  • Сниппеты: 4
  • Ревизии: 0
 $arr = [1,2,3]
srand(date('W'));
shuffle($array);
srand();

И никаких тебе сохранений промежуточных состояний

Gravatar image
jumper423
  • Репутация: 58
  • Сниппеты: 9
  • Ревизии: 2

Smoothsort.gifGitHub / Демо

Плавная сортировка вертикальных элементов.

Главной задачей было добиться максимальной быстрой скорости сортировки и отрисовки, без лишних действий. Данный плагин предназначен для узкого списка задач, по этому на супер функциональность в нём можете не рассчитывать.

Так же есть AssetBundle для Yii2 SmoothSortAsset

Продолжение »

samdark
  • Репутация: 348
  • Сниппеты: 57
  • Ревизии: 5

Иногда требуется, чтобы определённые ключи в массиве оказались в начале в определённом порядке.

$data = [
    'orange' => 'orange',
    'apple' => 'tasty',
    'carpet' => 'old',
    'car' => 'fast',
];

$result = orderByKeys($data, ['car', 'carpet']);

Получим:

$data = [
    'car' => 'fast',
    'carpet' => 'old',
    'orange' => 'orange',
    'apple' => 'tasty',    
];
function orderByKeys(array $array, array $keys)
{
    foreach ($keys as $k => $v) {
        if (!array_key_exists($v, $array)) {
            unset($keys[$k]);
        }
    }

   return array_replace(array_flip($keys), $array);
}

Сниппет,  Scala

BubbleSort

Gravatar image
Alykoff
  • Репутация: 1
  • Сниппеты: 1
  • Ревизии: 0

Грубый алгоритм bubblesort

import scala.annotation.tailrec

object BubbleSort {
	def sort(list: List[Int]) = {
		sortHelper(list, list.length)
	}
	@tailrec
	private	def sortHelper(xs: List[Int], j: Int): List[Int] = {
		if (j == 0) xs
		else {
			val ys = xs.foldLeft (List.empty[Int]) (running(_, _, j))
			sortHelper(ys, j - 1)
		}
	}
	
	private def running(xs: List[Int], el: Int, j: Int) = {
		if (xs.isEmpty) el :: xs
		else if (xs.length >= j) xs :+ el
		else if (xs.last > el) (xs.init :+ el) :+ xs.last
		else xs :+ el						
	}
}