Премини към съдържанието

Препоръчан отговор


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

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

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

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

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

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

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Каква роля върши "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 (преглед на промените)
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
Току що, Petur Dimitrov написа:

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

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

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

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
Току що, 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;
    }
    и т.н.

 

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

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

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

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