Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Простото вмъкване.

Featured Replies

Някой може ли да ми напише програма за метод на простото вмъкване (Insertion Sort) за С++. ?

Редактирано от Petur Dimitrov (преглед на промените)

преди 6 минути, Petur Dimitrov написа:

Някой може ли да ми напише програма за метод на простото вмъкване (Insertion Sort) за С++. ?

Вие започнете, ние ще помагаме. Наготово не чакайте!

  • Автор

Каква роля върши "temp" в кода и дали някакъв друг вариант да се напише този метод.

 

#include <iostream>

using namespace std;

int main()
{
    int q,b,n,temp,c[50];
    cin>>n;

    for(q=0;q<n;q++)
    {
        cin>>c[q];
    }

    for(q=1;q<=n-1;q++)
    {
        temp=c[q];
        b=q-1;

        while((temp<c)&&(b>=0))
        {
            c[b+1]=c;
            b=b-1;
        }

        c[b+1]=temp;
    }

    for(q=0;q<n;q++)
    {
        cout<<c[q]<<" ";
    }

    return 0;
}
 

Редактирано от Petur Dimitrov (преглед на промените)

Току що, Petur Dimitrov написа:

Каква роля върши "temp" в кода и дали някакъв друг вариант да се напише този метод.

Нещо ти е грешен кода. Присвояваш и сравнщваш "c"което е масив от цели числа на/с цяло число. Струва ми се че е трябвало да бъде c

temp е елемента, който вмъкваш.

  • Автор
Току що, flare написа:

Нещо ти е грешен кода.

Ами как трябва да бъде за да е верен по този метод за простото вмъкване ? Все още съм нов с това ако може да покажеш.

Току що, Petur Dimitrov написа:

Ами как трябва да бъде за да е верен по този метод за простото вмъкване ? Все още съм нов с това ако може да покажеш.

То хубаво си нов, но не пробва ли да я компилираш поне тая програма? За да се научиш, първо малко инициатива трябва. Като я компилираш ще си каже.

Изглежда ми, че навсякъде трябва да замениш самостоятелно срещащото се

c
// със
c[b]

след деклрарацията.

  • Автор

Ами направих го така и програмата се компилира . Има ли други начини да се напише този метод и дали този код който съм качил по отгоре е добър ?

Току що, Petur Dimitrov написа:

Ами направих го така и програмата се компилира . Има ли други начини да се напише този метод и дали този код който съм качил по отгоре е добър ?

А като се компилира, работи ли? Провери ли я с 3 -4 различни масива - подреден, обратно подреден, разбъркан? Трябва да си тестваш програмите винаги.

Алгоритъмът на простото вмъкване е достатъчно прост ( :) ) да не дава много възможности за имплементация, така че няма кой знае колко по-добре да стане.

преди 12 минути, Petur Dimitrov написа:

Добре без да пиша "temp" в кода има ли начин да се направи и пак да работи както трябва ?

Не те разбирам. Какво значи "без да пиша temp"? Не искаш да се казва така променливата или искаш алгоритъм за просто вмъкване без временна променлива, в която да държиш елемента, който се вмъква? И ако е второто, защо?

Офф: Харесва ми стила на момчето, труди се и не чака всичко на готово. :)

  • Автор
преди 19 часа, flare написа:

Не те разбирам. Какво значи "без да пиша temp"? Не искаш да се казва така променливата или искаш алгоритъм за просто вмъкване без временна променлива, в която да държиш елемента, който се вмъква? И ако е второто, защо?

Добре. Искам да го направя за този метод че примерно когато определен брой n елементи да ми излизат числата но всеки път да са различни да не се повтарят.

Примерно:

n= 20

и да ми излизат 20 числа и така за други колкото напиша на n  да ми излизат толкова различни числа. Пробвах се но не успях ако може някой да ми го направи да видя и проследя кое как става.

преди 1 минута, Petur Dimitrov написа:

...

Искаш да ползваш генератор на произволни числа, вместо да ги въвеждаш ли? И какво общо има това с temp?

  • Автор
Току що, flare написа:

Искаш да ползваш генератор на произволни числа, вместо да ги въвеждаш ли? И какво общо има това с temp?

Тука нямам нищо общо с temp просто искам като задам n= 30 или n= 20 и т.н каквото и да съм задал n=  и да излизат произволни числа а не да ги задавам аз. И става въпрос пак за метода Insertion Sort .

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main()
{
    int q,b,n,temp, *c;
    cin>>n;
    if (n<1) return 1;
    
    c=new int[n];

    srand(time(NULL));
    
    for(q=0;q<n;q++)
    {
        c[q]=rand()%n;
    }
    и т.н.

 

  • Автор

Ами на моя код по отгоре как да го направя примерно когато ми изкарва резултатите да ми излизат на всеки отделен ред подредбата докато стигне до крайният резултат на числата.

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.