Лучшие помощники
- Megamozg 2205 б
- Matalya1 1800 б
- DevAdmin 1720 б
- arkasha_bortnikov 900 б
- Dwayne_Johnson 870 б
В PHP доступны следующие алгоритмы сортировки:
1. Сортировка пузырьком (Bubble Sort):
```php
function bubbleSort($arr) {
$n = sizeof($arr);
for($i=0;$i<$n;$i++) {
for($j=0;$j<$n-$i-1;$j++) {
if($arr[$j] > $arr[$j+1]) {
$temp = $arr[$j+1];
$arr[$j+1] = $arr[$j];
$arr[$j] = $temp;
}
}
}
return $arr;
}
```
2. Сортировка выбором (Selection Sort):
```php
function selectionSort($arr) {
$n = sizeof($arr);
for($i=0;$i<$n;$i++) {
$minIndex = $i;
for($j=$i+1;$j<$n;$j++) {
if($arr[$j] < $arr[$minIndex]) {
$minIndex = $j;
}
}
$temp = $arr[$i];
$arr[$i] = $arr[$minIndex];
$arr[$minIndex] = $temp;
}
return $arr;
}
```
3. Сортировка вставками (Insertion Sort):
```php
function insertionSort($arr) {
$n = sizeof($arr);
for($i=1;$i<$n;$i++) {
$key = $arr[$i];
$j = $i-1;
while($j>=0 && $arr[$j] > $key) {
$arr[$j+1] = $arr[$j];
$j--;
}
$arr[$j+1] = $key;
}
return $arr;
}
```
4. Быстрая сортировка (Quick Sort):
```php
function quickSort($arr) {
$n = sizeof($arr);
if($n <= 1) {
return $arr;
}
$pivot = $arr[0];
$left = $right = array();
for($i=1;$i<$n;$i++) {
if($arr[$i] < $pivot) {
$left[] = $arr[$i];
} else {
$right[] = $arr[$i];
}
}
return array_merge(quickSort($left), array($pivot), quickSort($right));
}
```
5. Сортировка слиянием (Merge Sort):
```php
function mergeSort($arr) {
$n = sizeof($arr);
if($n <= 1) {
return $arr;
}
$mid = $n/2;
$left = array_slice($arr, 0, $mid);
$right = array_slice($arr, $mid);
$left = mergeSort($left);
$right = mergeSort($right);
return merge($left, $right);
}
function merge($left, $right) {
$result = array();
while(sizeof($left) > 0 && sizeof($right) > 0) {
if($left[0] < $right[0]) {
$result[] = array_shift($left);
} else {
$result[] = array_shift($right);
}
}
while(sizeof($left) > 0) {
$result[] = array_shift($left);
}
while(sizeof($right) > 0) {
$result[] = array_shift($right);
}
return $result;
}
```
1. Сортировка пузырьком (Bubble Sort):
```php
function bubbleSort($arr) {
$n = sizeof($arr);
for($i=0;$i<$n;$i++) {
for($j=0;$j<$n-$i-1;$j++) {
if($arr[$j] > $arr[$j+1]) {
$temp = $arr[$j+1];
$arr[$j+1] = $arr[$j];
$arr[$j] = $temp;
}
}
}
return $arr;
}
```
2. Сортировка выбором (Selection Sort):
```php
function selectionSort($arr) {
$n = sizeof($arr);
for($i=0;$i<$n;$i++) {
$minIndex = $i;
for($j=$i+1;$j<$n;$j++) {
if($arr[$j] < $arr[$minIndex]) {
$minIndex = $j;
}
}
$temp = $arr[$i];
$arr[$i] = $arr[$minIndex];
$arr[$minIndex] = $temp;
}
return $arr;
}
```
3. Сортировка вставками (Insertion Sort):
```php
function insertionSort($arr) {
$n = sizeof($arr);
for($i=1;$i<$n;$i++) {
$key = $arr[$i];
$j = $i-1;
while($j>=0 && $arr[$j] > $key) {
$arr[$j+1] = $arr[$j];
$j--;
}
$arr[$j+1] = $key;
}
return $arr;
}
```
4. Быстрая сортировка (Quick Sort):
```php
function quickSort($arr) {
$n = sizeof($arr);
if($n <= 1) {
return $arr;
}
$pivot = $arr[0];
$left = $right = array();
for($i=1;$i<$n;$i++) {
if($arr[$i] < $pivot) {
$left[] = $arr[$i];
} else {
$right[] = $arr[$i];
}
}
return array_merge(quickSort($left), array($pivot), quickSort($right));
}
```
5. Сортировка слиянием (Merge Sort):
```php
function mergeSort($arr) {
$n = sizeof($arr);
if($n <= 1) {
return $arr;
}
$mid = $n/2;
$left = array_slice($arr, 0, $mid);
$right = array_slice($arr, $mid);
$left = mergeSort($left);
$right = mergeSort($right);
return merge($left, $right);
}
function merge($left, $right) {
$result = array();
while(sizeof($left) > 0 && sizeof($right) > 0) {
if($left[0] < $right[0]) {
$result[] = array_shift($left);
} else {
$result[] = array_shift($right);
}
}
while(sizeof($left) > 0) {
$result[] = array_shift($left);
}
while(sizeof($right) > 0) {
$result[] = array_shift($right);
}
return $result;
}
```
0
·
Хороший ответ
17 апреля 2023 19:37
Остались вопросы?
Еще вопросы по категории Математика
множество А состоит из всех трёхзначных чисел, которые можно составить из цифр 8, 9, 0 так, чтобы цифры не повторялись. Сколько элементов содержит мно...
Последовательность задана формулой an=1-n^2 какое из указанных членов является членом этой последовательности 1)-2 2)-3 3)-4 4)3...
Какие из следующих утверждений верны 1) для каждого натурального числа существует натуральное число которое меньше его на 1 2) наивысший разряд числа...
Сторона правильного треугольника вписанного в окружность с радиусом R, равна: а)R корень из 2, б) R корень из 3, в) R...
2. По двум длинным параллельным проводам текут в одинаковом на- правлении токи силой 10 А и 15 А. Расстояние между проводами а=10 см. Определи...