C++ :: Aufgabe #337 :: Lösung #1

1 Lösung Lösung öffentlich
#337

Position im Array gesucht

Anfänger - C++ von JKooP - 18.02.2021 um 20:06 Uhr
Gegeben ist ein sortiertes Array mit einer beliebigen Anzahl von Integer-Zahlen und eine Integer-Zahl,
deren Position/Index ermittelt werden soll. Ist die Zahl nicht vorhanden,
soll ebenfalls die Position bestimmt werden, an der sie im sortierten Array eingeordnet werden müsste.

Es können aber auch, je nach Programmiersprache bzw. Vorliebe, auch andere Daten-Container wie z.B. Listen oder Vektoren genutzt werden.

Beispiele:

Array = [1, 3, 5, 7, 9]
Zahl = 7
Lösung: 3

Array = [0, 1, 3, 7, 9]
Zahl = 2
Lösung: 2

Array = [1, 4, 6, 8, 9]
Zahl = 0
Lösung: 0

Array = [1, 3, 5, 7]
Zahl = 9
Lösung: 4

Hinweis: Array ist nullbasiert!

Erstelle eine Funktion/Methode, mit der die oben genannte Problemstellung gelöst werden kann.

Viel Spaß
#1
vote_ok
von JKooP (18090 Punkte) - 31.03.2021 um 17:59 Uhr
C++ 17
Binäre Suche
Quellcode ausblenden C-Code
#include <iostream>
#include <vector>
using namespace std;

int get_pos(vector<int>& nums, int target)
{
    int l{ 0 };
    int h{ (int)(nums.size() - 1) };

    while (l <= h)
    {
        int m{ l + (h - l) / 2 };
        if (nums[m] == target)
            return m;
        else if (nums[m] < target)
            l = m + 1;
        else
            h = m - 1;
    }
    return l;
}

int main()
{
    vector<int> n = { 1, 3, 5, 7, 9 };
    auto t{ 7 };
    cout << get_pos(n, t) << endl;
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben