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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Phoenix_9259
2 / 2 / 0
Регистрация: 03.12.2010
Сообщений: 14
#1

Найти сортировку по возрастанию - C++

03.12.2010, 10:49. Просмотров 407. Ответов 6
Метки нет (Все метки)

Дан одномерный Массив.
Найти сортировку по возрастанию.

Подскажите где можно писать задачу что бы на неё ответили?
Надо задачи решить!!! Как "кровь из носа" надо... Помогите.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2010, 10:49     Найти сортировку по возрастанию
Посмотрите здесь:

Выполнить сортировку каждого столбца матрицы по возрастанию C++
C++ Задана матрица.ВЫполнить сортировку эл.по возрастанию в тех строках матрицы сумма элементов в которых положительная
Задана матрица целых чисел. Выполнить сортировку элементов в каждом столбце матрицы по возрастанию C++
Сделать сортировку строк по сумме элементов по возрастанию C++
Слить два линейных списка, сохранив сортировку по возрастанию C++
C++ Реализовать сортировку функции по возрастанию или по убыванию, направление должнен указывать пользователь
C++ Задача на сортировку массива по возрастанию методом выбора минимального элемента. Не правильно работает код
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
03.12.2010, 10:56     Найти сортировку по возрастанию #2
Цитата Сообщение от Phoenix_9259 Посмотреть сообщение
Дан одномерный Массив.
Найти сортировку по возрастанию.
В заданном одномерном массиве из 10 элементов сортировка по возрастанию методом пузырька (сравниваются соседние элементы и их переставляют, если предыдущий больше последующего).

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
# include <iostream>
main()
{  int i,j, a[11],b;
    for (i=1; i<=10; i++)
    {cout<<"введи  a["<<i<<"] "; cin>>a[i];}
   for (i=1; i<=9; i++)
   for (j=1; j<=9; j++)
   {    if (a[j]>a[j+1]) 
    { b=a[j]; a[j]=a[j+1]; a[j+1]=b;} }
   for (i=1; i<=10; i++)
   { cout<<"\n a["<<i<<"] "<<a[i];}
   return(0);
}
bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
03.12.2010, 11:13     Найти сортировку по возрастанию #3
вот сортировка массива двумя методами:
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
78
79
80
81
82
83
84
85
86
87
88
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<stdlib.h>
#include<iostream.h>
#include <cstring.h>
#include <cstdlib.h>
#include <fstream>
#include <string>
#include <sstream>
 
 
//-----------------------
void vstavki(int *A);
void obmen(int *A);
//-----------------------
 
void obmen(int *A)
{
   int k,N,tmp,j,F;
    for (k = N-1; k > 1 ; k++)
     {
       F= 0;
       for (j = 1 ; j < k; k++ )
       if (A[j]>A[j+1])
          {
             tmp = A[j];
             A[j]=A[j+1];
             A[j+1]=tmp;
             F = 1;
          }
       if (F=0)  break;
     }
    cout <<"\n New array: ";
    for (int i=2; i < 15; i++)
          cout <<" "<<A[i];
}
 
//-----------------------------------------
void vstavki(int *A)
{
    int j, B;
    cout <<"\n Old array : ";
      for (int i=2; i < 15; i++)
         cout <<" "<<A[i];
    cout <<"\n -------------------------------------------- ";
    for (int k = 2; k <= 15; k++)
     {
      B = A[k];
      j = k-1;
      while ( (A[j]> B) && (j>1) )
         {
           A[j+1] = A[j];
           j=j - 1;
         }
      A[j+1] = B;
     }
    cout <<"\n New array: ";
    for (int i=2; i < 15; i++)
      cout <<" "<<A[i];
    cout <<"\n -------------------------------------------- ";
}
//----------------------------------------------------
int main()
{
 
 
  int l;
  int A[15];
  for(int i=0 ;i<15;i++) A[i]=random(100);
  do
    {
      cout <<"\n ";
      cout <<"\n 1)Vstavki \n 2)obmen \n 3)Exit \n";
      cin >>l;
      switch(l)
        {
          case 1:
            vstavki(A);
            break;
          case 2:
            obmen(A);
            break;
        }
    }
   while (l!=3);
   getch();
}
Добавлено через 2 минуты
вверху кода много лишнего, писал за 10 минут до конца пары на лабе, и торопился малек

Добавлено через 13 минут
а кто-нибудь может подсказать, как оценить реальное время выполнения алгоритма? для моих методов
Phoenix_9259
2 / 2 / 0
Регистрация: 03.12.2010
Сообщений: 14
03.12.2010, 11:25  [ТС]     Найти сортировку по возрастанию #4
Спасибо. Следующюю задачу писать тут или новую тему создавать?
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
03.12.2010, 11:30     Найти сортировку по возрастанию #5
пиши тут посмотрим что слделать надо, только нормально задание формируй.
Phoenix_9259
2 / 2 / 0
Регистрация: 03.12.2010
Сообщений: 14
03.12.2010, 11:45  [ТС]     Найти сортировку по возрастанию #6
Извините если не коректно пишу задания, просто я помогаю, как мне сказали так я и пишу. Простите.

След. задание:
дан одномерный массив. написать программу преобразования массива путём сдвига их значений.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2010, 15:38     Найти сортировку по возрастанию
Еще ссылки по теме:

Реализовать сортировку по возрастанию и убыванию C++
Выполнить сортировку элементов в каждой строке матрицы по возрастанию C++
C++ Провести сортировку по возрастанию отрицательных чисел в нечетных строках
Описать процедуру, выполняющую сортировку по возрастанию массива А из Н вещественных чисел C++
C++ Выполнить пузырьковую сортировку массива по возрастанию и вывести исходный массив обработанный на экран

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

Или воспользуйтесь поиском по форуму:
bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
03.12.2010, 15:38     Найти сортировку по возрастанию #7
Цитата Сообщение от Phoenix_9259 Посмотреть сообщение
Извините если не коректно пишу задания, просто я помогаю, как мне сказали так я и пишу. Простите.

След. задание:
дан одномерный массив. написать программу преобразования массива путём сдвига их значений.
я не совсем понял задание, значения будут сдвигаться, а что делать с последним значением нового массива? 0 ?

что-то такое получиться должно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream.h>
#include<conio.h>
 
void main()
{
    int a[10];
    for (int i=0; i < 10; i++)
       a[i]=random(100);
    cout<<"\n";
    for (int i=0; i < 10; i++)
       cout<<" "<<a[i];
    for (int i=0; i < 10; i++)
      a[i]=a[i+1];
    cout<<"\n";
    for (int i=0; i < 9; i++)
       cout<<" "<<a[i];
    getch();
}
Добавлено через 3 минуты
а постойте, может первый элемент старого массива должен стать послдним элементом нового массива?

Добавлено через 4 минуты
глупо конечно, но можно так =) поменяйте кол-во элементов на которое вам нужно или переменную(если с клавиатуры вводить нужно) и вместе где у меня a[9] у вас будет a[n-1] =) или в цикле for сделать не строгое неравенство

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream.h>
#include<conio.h>
 
void main()
{
    int a[10],b;
    for (int i=0; i < 10; i++)
       a[i]=random(100);
    cout<<"\n";
    for (int i=0; i < 10; i++)
       cout<<" "<<a[i];
    b=a[0];
    for (int i=0; i < 10; i++)
      a[i]=a[i+1];
    a[9]=b;
    cout<<"\n";
    for (int i=0; i < 10; i++)
       cout<<" "<<a[i];
    getch();
}
Yandex
Объявления
03.12.2010, 15:38     Найти сортировку по возрастанию
Ответ Создать тему
Опции темы

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