-4 / 1 / 0
Регистрация: 11.12.2018
Сообщений: 112
1

Сортировка методом Шелла

02.04.2019, 15:13. Показов 1248. Ответов 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
#include <iostream>
#include "stdio.h"
 
using namespace std;
 
void bubbleSort(float array[], int col){
    float temp=0;
    for (int i=1;  i<col  ;  i++){
        for (int j=0;  j<col-i;  j++){
            if (array [j]>array [j+1]){
                temp=array[j];
                array [j]=array [j+1];
                array [j+1]=temp;
            }
        }
    }
}
 
int main(){
    int i, size;
    float *array;
    cout << "Bubble Sort.\nВведите размер массива: ";
    cin >> size;
    array = new float[size];
    cout << "Введите " << size << " елементи: ";
    for ( i = 0; i < size; i ++ ){
        cin >> array[i];
    }
 
    bubbleSort( array, size );
    float *arr2=new float[size];
    int k=0;
    for(int i=0;i<size;i++){
        if (array[i] != 0){
            arr2[k++]=array[i];}
    }
    for(int i=0;i<size;i++){
        if (array[i] == 0)
            arr2[k++]=0;
    }
    cout << "Масссив после сортировки: ";
    for ( i = 0; i < size; i ++ ){
        cout << arr2[i] << " ";
    }
    getchar();
 
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2019, 15:13
Ответы с готовыми решениями:

Сортировка методом Шелла
Ребят проверьте программу и исправьте ошибку и скиньте плиз скрин кода программы ну точней вывод...

Сортировка методом шелла
День добрый! Хочу разобраться с алгоритмом. Перепишете его пожалуйста без шаблонов, если я...

Сортировка методом Шелла
Помогите! Нужно написать код программы сортировки одномерного массива по убыванию методом Шелла....

Сортировка методом Шелла
Помогите с написанием программы, которая реализует сортировку массива методом шелла...я только...

3
6991 / 4740 / 2723
Регистрация: 18.12.2017
Сообщений: 14,829
02.04.2019, 16:28 2
Цитата Сообщение от Windster Посмотреть сообщение
Как сделать сортировку методом Шелла этому коду?
заменить пузырьковую сортировку на сортировку Шелла. строки 33-39 не очень. напишите оригинал условия задачи.
0
-4 / 1 / 0
Регистрация: 11.12.2018
Сообщений: 112
02.04.2019, 16:31  [ТС] 3
Задать одномерный массив целых чисел М = 12. Сортировать его по возрастанию, при этом переместить все нули в конец массива. Пирамидальное сортировки и сортировки методом простого включения(Методом Шелла).
0
6991 / 4740 / 2723
Регистрация: 18.12.2017
Сообщений: 14,829
02.04.2019, 17:07 4
Лучший ответ Сообщение было отмечено Windster как решение

Решение

Windster, доп. массив не нужен, код по Вашему алгоритму (только сортировка Шелла, пирамидальную добавьте самостоятельно). но я так понимаю, что по условию нули нужно смещать не отдельными циклами, а включить смещение в саму сортировку - это не подскажу.
Кликните здесь для просмотра всего текста
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
#include <iostream>
using namespace std;
 
void Shell_sort(int *a, int n)
{
   int step=n/2;
    while (step > 0)
    {
      for (int i = 0; i < n-step; i++)
            {
                 int j=i;
                 while (j >= 0 && a[j] >a[j+step])
                    {
                        int temp=a[j];
                        a[j]=a[j+step];
                        a[j+step]=temp;
                        j--; 
                    }
                }
           step=step/2;
        }
}
 
int main()
{
    const int M=12;
    int a[M], k=0;
 
    cout << "Enter " << M << " elements:\n";    
    for (int i = 0; i < M; i++)      
    cin >> a[i];
    
    Shell_sort(a, M);    
    
    for (int i = 0; i < M; i++)
        if (a[i]!=0) a[k++]=a[i];
        
    for (int i = k; i < M; i++)
        a[i]=0;
          
    for (int i = 0; i < M; i++)
    cout << a[i] << " ";
    cout << "\n";
system("pause");
return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2019, 17:07

Сортировка методом Шелла С++
Помогите пожалуйста. Нужно отсортировать двухмерный массив методом Шелла. Но отсортировать...

Сортировка методом Шелла
Помогите найти пример сортировки методом Шелла. Только нужно чтоб массив был рандомный, а потом...

Сортировка методом Шелла
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; /*Массив из 10 целых чисел заполнить...

Сортировка методом Шелла
Не могу разобраться с сортировкой методом Шелла именно в двумерном массиве. Если, например, нам...


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

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

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