Реализации алгоритмов/Сортировка/Шелла: различия между версиями

Содержимое удалено Содержимое добавлено
м Откат правок 94.29.127.211 (обс.) к версии 62.76.168.248
→‎К переименованию: Использован шаблон.
Строка 1:
{{К переименованию | 2014-05-02 | Реализации алгоритмов/Сортировка/Шелла}}
 
{{wikipedia|Сортировка Шелла}}
== Псевдокод ==
Строка 7 ⟶ 9 :
УКАЗ
b:=РАЗМЕР(a);
k:=b ДЕЛИТЬ 2;
ПОКА k>0 ВЫП
ОТ i:=1 ДО b-k ВЫП
Строка 18 ⟶ 20 :
КОН;
КОН;
k:=k ДЕЛИТЬ 2
КОН
КОН Шелл;
Строка 64 ⟶ 66 :
p1 *= 2;
// заполняем массив, пока текущая инкремента хотя бы в 3 раза меньше количества элементов в массиве
} while(3*inc[s] < size);
 
return s > 0 ? --s : 0;// возвращаем количество элементов в массиве
Строка 142 ⟶ 144 :
arr[j] = arr[j + step];
arr[j + step] = tmp;
j--;
}
}
Строка 182 ⟶ 184 :
j=i;
h=a[i];
while ((j >= k) && (a[j-k] > h)){
a[j]=a[j-k];
j = j-k;
Строка 243 ⟶ 245 :
$k=0;
$gap[0] = (int) ($length / 2);
 
while($gap[$k] > 1) {
$k++;
$gap[$k]= (int)($gap[$k-1] / 2);
}//end while
 
for($i = 0; $i <= $k; $i++){
$step=$gap[$i];
 
for($j = $step; $j < $length; $j++) {
$temp = $elements[$j];
Строка 262 ⟶ 264 :
}//endfor j
}//endfor i
 
return $elements;
}// end function
 
// Exmaple
// $SortedElements=shellsort($UnsortedElements,length of list(an integer));
Строка 281 ⟶ 283 :
if i == 2:
i = 1
else:
i = int(numpy.round(i/2.2))
yield i