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

Сортировка массива за один проход - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Лексический анализатор http://www.cyberforum.ru/cpp-beginners/thread193433.html
Получил задание. Ранее с++ не изучал. Если найдутся добрые люди, которые могут помочь, отзовитесь, пожалуйста. Разработать лексический анализатор, который реализует конечный автомат для поиска во входном потоке бинарных векторов с четным числом единиц и нечетным числом нулей
C++ В массиве все элементы, стоящие после максимального, уменьшить на 1 В задаче требуется написать, отладить и протестировать программу, обеспечивающую выполнение следующих действий 1. Ввод одномерного массива 2 Вывод исходного массива 3. Обработка массива в соотвествии с заданием Выод параметров массива, которые требуется найти по заданию 5. Вывод массива после внесенных изменений В программе требуется обязательно использовать функции. Использование... http://www.cyberforum.ru/cpp-beginners/thread193431.html
C++ Поразрядные операции
Найти Поразрядные операции, в результате которой из чисел N1(ABCD) и N2(EFGH)получается минимальное число. Подсчитать число единиц в левом байте этого числа. #include <stdio.h> #include <conio.h> col_ed () { int k=0,i,MIN; for (i=0;i<16;i++) if ((MIN>>i)&&(0x1)) k++; return k; } MIN_numbe ()
C++ Сформировать массив
Помогите написать программу..) Сформировать массив данных с помощью структуры. Предметная область – данные меню столовой (номер по порядку, блюдо, цена, вес порции). Отсортировать полученный список по полю «цена». Вывод результатов оформить в виде таблицы. Добавлено через 13 часов 32 минуты Спасибо.
C++ c++ http://www.cyberforum.ru/cpp-beginners/thread193403.html
помогите написать программу В файле хранятся названия фильмов. Каждая строка отдельное название. Написать программу, которая читает строки из файла в массив строк, и выводит на экран названия фильмов, отсортировав их а) по убыванию количества слов в названии, б) по возрастанию количества строк в названии, в) в алфавитном порядке.
C++ Перечесление из массивов. Всем доброе время суток. Вот не могу не как докумекать над таким действием. Имеется два двух мерных массива содержащие по три целых числа напимер 3,2,9 и 5,6,7 нужно с помощью операторов цикла for,while,switch перемножить каждое из трёх чисел по очереди то есть 3х5 3х6 3х7 подробнее

Показать сообщение отдельно
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
20.11.2010, 14:46     Сортировка массива за один проход
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
 
void sort( int n, int *parr );
 
#define N 10
 
#define random( arg_a, arg_b )  ( (arg_a)+rand()%((arg_b)-(arg_a)+1) )
 
int main( void ) {
    
int i;
int arr[N];
 
srand( time( NULL ) );
for ( i= 0; i<N; i++ ) { arr[i]= random( -5, +5 ); }
 
for ( i= 0; i<N; i++ ) { printf( " %d", arr[i] ); }
printf( "\n" );
 
sort( N, arr );
 
for ( i= 0; i<N; i++ ) { printf( " %d", arr[i] ); }
printf( "\n" );
 
return 0;
 
} /* main() */
 
 
void sort( int n, int *parr ) {
 
int p1, s1, p2, s2;
int val;
 
 
p1= s1= 0;
p2= s2= n-1;
 
for ( ; ; ) {
 
    for ( ; ; ) {
        if ( p1>p2 ) { goto ret_all; }
        if ( parr[p1]>0 ) {
            parr[s1]= parr[p1];
            s1++; p1++;
        } else if ( parr[p1] == 0 ) {
            p1++;
        } else { /* parr[p1]<0 */
            break;
        }
    }
 
    for ( ; ; ) {
        if ( p1>p2 ) { goto ret_all; }
        if ( parr[p2]<0 ) {
            parr[s2]= parr[p2];
            s2--; p2--;
        } else if ( parr[p2] == 0 ) {
            p2--;
        } else { /* parr[p2]>0 */
            break;
        }
    } 
 
    val= parr[p1]; parr[s1]= parr[p2]; parr[s2]= val;
    s1++; p1++;
    s2--; p2--;
    
}
 
ret_all:
for ( ; s1<=s2; s1++ ) { parr[s1]= 0; }
 
} /* sort() */
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru