Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2327 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, taigi programai turiu padaryti dvigubo išrinkimo metodą (Double selection sort). Ir pagal mano parašyta kodą masyvo elementai yra išrikiuojami ne taip kaip turėtų. Tai galbūt jūs rasite kas su mano kodu yra negerai ir tikiuosi, jog pavyks išspręsti problemą.
 

   void dvigelementrink (int n, int i)
    {
    int Temp;
    for(i=0;i<n/2;i++)
    {
    int minimum = i;
    int maximum = i;
    for(int j=i+1;j<n-i;j++)
    {
    if (B[minimum]>B[j])
    minimum=j;
    if (B[maximum]<B[j])
    maximum = j;
    }
    Temp = B[i];
    B[i] = B[minimum];
    B[minimum] = Temp;
    Temp = B[n-1-i];
    B[n-1-i] = B[maximum];
    B[maximum] = Temp;
    n = n-1-i;
    }
    for (i=0;i<n;i++);
    }

 

Su SUPERGAMES.lt nuo 2012 m. Vasario 15 d.

 

(redaguota)
#include <iostream>

void DSS( int *arr, const unsigned n ) {
    unsigned max = 0;
    unsigned min = 0;

    for ( unsigned i = 0; i < n / 2; max = min = ++i ) {
        for ( unsigned j = i + 1; j < n - i; ++j ) {
            if ( arr[ j ] >= arr[ max ] ) {
                max = j;
            }
            
            if ( arr[ j ] < arr[ min ] ) {
                min = j;
            }
        }

        std::swap( arr[ i ], arr[ min ] );
        std::swap( arr[ n - i - 1 ], arr[ ( max == i ? min : max ) ] );
    }
}

int main() {
    int arr[]           = { 5, 4, 7, 1, 10, 11, 27, 2, 34, 3 };
    const unsigned n    = sizeof( arr ) / sizeof( int );

    DSS( arr, n );

    for ( unsigned i = 0; n != i; ++i ) {
        std::cout << arr[ i ] << std::endl;
    }

    return 0;
}

https://stackoverflow.com/questions/45892516/algorithms-are-double-ended-selection-sorts-really-faster-than-single-ended-on

Redaguota , nario don't be so cynical
  • Teigiamai 1
8 minutes prieš, don't be so cynical parašė:

#include <iostream>

void DSS( int *arr, const unsigned n ) {
    unsigned max = 0;
    unsigned min = 0;

    for ( unsigned i = 0; i < n / 2; max = min = ++i ) {
        for ( unsigned j = i + 1; j < n - i; ++j ) {
            if ( arr[ j ] >= arr[ max ] ) {
                max = j;
            }
            
            if ( arr[ j ] < arr[ min ] ) {
                min = j;
            }
        }

        std::swap( arr[ i ], arr[ min ] );

        if ( max == i ) {
            max = min;
        }

        std::swap( arr[ n - i - 1 ], arr[ max ] );
    }
}

int main() {
    int arr[]           = { 5, 4, 7, 1, 10, 11, 27, 2, 34, 3 };
    const unsigned n    = sizeof( arr ) / sizeof( int );

    DSS( arr, n );

    for ( unsigned i = 0; n != i; ++i ) {
        std::cout << arr[ i ] << std::endl;
    }

    return 0;
}

https://stackoverflow.com/questions/45892516/algorithms-are-double-ended-selection-sorts-really-faster-than-single-ended-on

Dėkui. Veikia programa dabar. :)

Su SUPERGAMES.lt nuo 2012 m. Vasario 15 d.

 

  • d0Se užrakino šią temą

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2327 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.

Skelbimai



×
×
  • Sukurti naują...