Форум программистов, компьютерный форум CyberForum.ru

сортировка простого массива - C++

Восстановить пароль Регистрация
 
wolf
2 / 2 / 1
Регистрация: 17.09.2012
Сообщений: 860
21.03.2013, 22:25     сортировка простого массива #1
уважаемые программисты помогите пожалуйста переписать php код на С++, вот сам скрипт, заранее спасибо

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
error_reporting(-1); // Задает, какие ошибки PHP попадут в отчет.
$message = ' '; // пустое сообщение
function sortmass(array $data){
$sort = array();  // создаем пустой массив
while (!empty($data)) {  // пока массив $data не будет пустой делаем блок до закрывающей фигурной скобки
$max = max($data);  // заносим в переменную $max максимальное значение массива
array_unshift($sort, $max); // добавляем в начало массива $sort значение переменной $max 
unset($data[array_search($max, $data)]);  // удаляем из массива $data значение соответствующее ключу который возвращает array_search(значение индекса массива $data который соответствует значению $max)  
}  // конец блока while 
return $sort;  // возвращаем массив
}
function resortmass(array $data){
$sort = array();  // создаем пустой массив
while (!empty($data)) {  // пока массив $data не будет пустой делаем блок до закрывающей фигурной скобки
$max = max($data);  // заносим в переменную $max максимальное значение массива
array_push($sort, $max);  // добавляем в конец массива $sort значение переменной $max 
unset($data[array_search($max, $data)]);  // удаляем из массива $data значение соответствующее ключу который возвращает array_search(значение индекса массива $data который соответсвтвует значению $max)  
}  // конец блока while 
return $sort;  // возвращаем массив
}
if (isset($_POST['reset'])){ // если нажата кнопка reset
header('location:'.$_SERVER['PHP_SELF']); // делаем редирект и соответсвенно стираются данные массива POST
} elseif (isset($_POST['submit'])){ // если нажата кнопка submit делаем следующий блок
$ar  = (int) $_POST['ar']; // создаем переменные и заносим в них coondtncnde.obt значения массива POST предварительно приведя к типу integer,
$min = (int) $_POST['min']; // что бы ничего кроме чисел не осталось,
$max = (int) $_POST['max']; // получается защита от хакерских атак
$status = (int) $_POST['status']; // выводит длину массива
$message .= empty($ar) ? 'длина массива не введена! <br />' : ''; // если не введены необходимые данные заносим в переменную $message сообщение о том что не заполнены обязательные поля
$message .= ($min > $max) ? 'минимум больше максимума! <br />' : '';
if (empty($message)){ // если нет сообщения и значит все поля заполнены и все данные существуют то выполняем следующий блок
$array = range($min, $max); // создаем массив со значениями из диапозона от $min до $max 
$array = ($status == 1) ? sortmass($array) : resortmass($array); // если значение переменной $status переданной из формы равен 1 то сортируем функцией sortmass иначе сортируем resortmass
$str_sort = implode(', ', $array); // разбиваем значения отсортированного массива в строку через запятую
$array = array(); // создаем пустой массив
for ($i = 0; $i < $ar; $i ++) // цикл от 0 до переменной $ar из формы
$array[] = mt_rand($min, $max); // при каждой итерации цикла заносим случайное значение из диапазона $max-$min в массив
$str_rand = implode(', ', $array); // разбиваем значения случайного массива в строку через запятую
} // конец блока кнопки submit
?>
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11801 / 6780 / 765
Регистрация: 27.09.2012
Сообщений: 16,833
Записей в блоге: 2
Завершенные тесты: 1
21.03.2013, 22:59     сортировка простого массива #2
Цитата Сообщение от wolf Посмотреть сообщение
сортировка простого массива
Алгоритмы сортировок
wolf
2 / 2 / 1
Регистрация: 17.09.2012
Сообщений: 860
21.03.2013, 23:17  [ТС]     сортировка простого массива #3
Croessmah, ну мне совершенно другая нужна ведь сортировка
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
22.03.2013, 02:35     сортировка простого массива #4
Из твоего сообщения вообще не понять, какая тебе нужна сортировка.
Нужно 1) знать php 2) иметь желание разбираться в этом ****окоде.
Лучше назови её по имени, под которым этот алгоритм всем известен.
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
22.03.2013, 11:18     сортировка простого массива #5
Близко к оригиналу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <cstdlib>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
 
vector< int > sortmass( vector< int > &data )
{
    vector< int > sort;
    vector< int >::iterator max;
 
    while ( !data.empty() )
    {
        max = max_element( data.begin(), data.end() );
        sort.insert( sort.begin(), *max );
        data.erase( max );
    }
    return sort;
}
 
vector< int > resortmass( vector< int > &data )
{
    vector< int > sort;
    vector< int >::iterator max;
 
    while ( !data.empty() )
    {
        max = max_element( data.begin(), data.end() );
        sort.push_back( *max );
        data.erase( max );
    }
    return sort;
}
 
int main()
{
    int N = 20;
    vector< int > a( N );
 
    for ( int i = 0; i < N; ++i ) a[ i ] = rand() % 100;
 
    cout << "array: " << endl;
    copy( a.begin(), a.end(), ostream_iterator< int >( cout, " " ) );
    cout << "\nafter sortmass:" << endl;
    a = sortmass( a );
    copy( a.begin(), a.end(), ostream_iterator< int >( cout, " " ) );
    cout << "\nafter resortmass:" << endl;
    a = resortmass( a );
    copy( a.begin(), a.end(), ostream_iterator< int >( cout, " " ) );
 
    return 0;
}
Добавлено через 3 минуты
ах да
Цитата Сообщение от wolf Посмотреть сообщение
ну мне совершенно другая нужна ведь сортировка
почему же другая. это сортировка выбором, которая там была в самом начале
wolf
2 / 2 / 1
Регистрация: 17.09.2012
Сообщений: 860
24.03.2013, 23:16  [ТС]     сортировка простого массива #6
а как сделать чтоб цыфры сам вводил? а потом чтоб отсортировывалось по убыванию и по возрастанию?
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
25.03.2013, 06:38     сортировка простого массива #7
замени a[ i ] = rand() % 100; на cin >> a[ i ];
wolf
2 / 2 / 1
Регистрация: 17.09.2012
Сообщений: 860
25.03.2013, 20:17  [ТС]     сортировка простого массива #8
ya_noob, не работает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2013, 21:02     сортировка простого массива
Еще ссылки по теме:

Упорядочить массив целых положительных чисел по возрастанию, определить но- мер минимального простого числа до и после упорядочивания массива C++
C++ Определить номер минимального простого числа до и после упорядочивания массива
C++ Сортировка методом простого обмена

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
wolf
2 / 2 / 1
Регистрация: 17.09.2012
Сообщений: 860
26.03.2013, 21:02  [ТС]     сортировка простого массива #9
сортировка простого массива

как сделать также на С++?
Yandex
Объявления
26.03.2013, 21:02     сортировка простого массива
Ответ Создать тему
Опции темы

Текущее время: 13:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru