Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
wolf
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
#1

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

21.03.2013, 22:25. Просмотров 522. Ответов 8
Метки нет (Все метки)

уважаемые программисты помогите пожалуйста переписать 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
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2013, 22:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос сортировка простого массива (C++):

Сортировка простого массива
Здравствуйте! Имеется проблема с сортировкой простого массива. Необходимо...

сортировка выбором простого массива
помогите пожалуйста нарисовать блок схему, вот код по которому нужно нарисовать...

Сортировка методом Шелла, не простого массива
Нужна помощь в реализации сортировки методом Шелла. Кидаю весь код, на всякий...

Сортировка массива методом простого обмена
Привет,программисты! Мне поставлена задача выполнить сортировку одномерного...

Рекурсия: сортировка массива методом простого выбора
Помогите решить задачу: написать процедуру сортировки массива методом простого...

Сортировка простого поиска
Нужна сортировка &quot;Простой поиск&quot;. Должна быть одна из стандартных, но что-то...

8
Croessmah
++Ͻ
14161 / 8086 / 1513
Регистрация: 27.09.2012
Сообщений: 19,926
Записей в блоге: 3
Завершенные тесты: 1
21.03.2013, 22:59 #2
Цитата Сообщение от wolf Посмотреть сообщение
сортировка простого массива
http://www.cyberforum.ru/cpp-beginners/thread27084.html
0
wolf
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
21.03.2013, 23:17  [ТС] #3
Croessmah, ну мне совершенно другая нужна ведь сортировка
0
Kuzia domovenok
2213 / 1982 / 444
Регистрация: 25.03.2012
Сообщений: 6,965
Записей в блоге: 1
22.03.2013, 02:35 #4
Из твоего сообщения вообще не понять, какая тебе нужна сортировка.
Нужно 1) знать php 2) иметь желание разбираться в этом ****окоде.
Лучше назови её по имени, под которым этот алгоритм всем известен.
0
ya_noob
_
314 / 148 / 27
Регистрация: 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 Посмотреть сообщение
ну мне совершенно другая нужна ведь сортировка
почему же другая. это сортировка выбором, которая там была в самом начале
0
wolf
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
24.03.2013, 23:16  [ТС] #6
а как сделать чтоб цыфры сам вводил? а потом чтоб отсортировывалось по убыванию и по возрастанию?
0
ya_noob
_
314 / 148 / 27
Регистрация: 08.10.2011
Сообщений: 432
25.03.2013, 06:38 #7
замени a[ i ] = rand() % 100; на cin >> a[ i ];
0
wolf
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
25.03.2013, 20:17  [ТС] #8
ya_noob, не работает
0
wolf
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
26.03.2013, 21:02  [ТС] #9
сортировка простого массива

как сделать также на С++?
0
26.03.2013, 21:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2013, 21:02
Привет! Вот еще темы с решениями:

Сортировка методом простого обмена
Дано n точек на плоскости. Указать (n-1)-звенную несамопересекающуюся...

Выполнить сортировку одномерного массива по возрастанию методом простого обмена
Выполнить сортировку одномерного массива по возрастанию методом простого обмена

Определить номер минимального простого числа до и после упорядочивания массива
Упорядочить массив целых положительных чисел по возрастанию, определить номер...

Упорядочить по убыванию элементы целочисленного массива, расположенные после минимального простого числа
Задание 2. Упорядочить по убыванию элементы целочисленного массива,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru