Как найти индекс числа в массиве чисел

Добавьте тогда пример, чтобы не был голый текст, например: def index(items, value): for i, x in enumerate(items): if x == value: return i это после цикла: return -1. После пример использования: s = [3,4,1,2,5] print(index(s, 1))

– gil9red

7 июн 2018 в 8:07

Given an array of N elements and an element K, find the index of an array element in Java. 
Examples: 

Input: a[] = { 5, 4, 6, 1, 3, 2, 7, 8, 9 }, K = 5
Output: 0

Input: a[] = { 5, 4, 6, 1, 3, 2, 7, 8, 9 }, K = 7
Output: 6

An element in an array of N integers can be searched using the below-mentioned methods.  

  1. Linear Search: Doing a linear search in an array, the element can be found in O(N) complexity. 
    Below is the implementation of the linear-search approach:

Java

import java.util.*;

public class index {

    public static int findIndex(int arr[], int t)

    {

        if (arr == null) {

            return -1;

        }

        int len = arr.length;

        int i = 0;

        while (i < len) {

            if (arr[i] == t) {

                return i;

            }

            else {

                i = i + 1;

            }

        }

        return -1;

    }

    public static void main(String[] args)

    {

        int[] my_array = { 5, 4, 6, 1, 3, 2, 7, 8, 9 };

        System.out.println("Index position of 5 is: "

                           + findIndex(my_array, 5));

        System.out.println("Index position of 7 is: "

                           + findIndex(my_array, 7));

    }

}

Output:

Index position of 5 is: 0
Index position of 7 is: 6

Time Complexity: O(N)
Auxiliary Space: O(1)

2. Binary search: Binary search can also be used to find the index of the array element in an array. But the binary search can only be used if the array is sorted. Java provides us with an inbuilt function which can be found in the Arrays library of Java which will return the index if the element is present, else it returns -1. The complexity will be O(log n). 
Below is the implementation of Binary search. 

Java

import java.util.Arrays;

public class index {

    public static int findIndex(int arr[], int t)

    {

        int index = Arrays.binarySearch(arr, t);

        return (index < 0) ? -1 : index;

    }

    public static void main(String[] args)

    {

        int[] my_array = { 1, 2, 3, 4, 5, 6, 7 };

        System.out.println("Index position of 5 is: "

                           + findIndex(my_array, 5));

        System.out.println("Index position of 7 is: "

                           + findIndex(my_array, 7));

    }

}

Output:

Index position of 5 is: 4
Index position of 7 is: 6

Time Complexity: O(log N)
Auxiliary Space: O(1)

3. Guava: Guava is an open source, Java-based library developed by Google. It provides utility methods for collections, caching, primitives support, concurrency, common annotations, string processing, I/O, and validations. Guava provides several-utility class pertaining to be primitive like Ints for int, Longs for long, Doubles for double etc. Each utility class has an indexOf() method that returns the index of the first appearance of the element in array.

Below is the implementation of Guava.

Java

import java.util.List;

import com.google.common.primitives.Ints;

public class index {

    public static int findIndex(int arr[], int t)

    {

        return Ints.indexOf(arr, t);

    }

    public static void main(String[] args)

    {

        int[] my_array = { 5, 4, 6, 1, 3, 2, 7, 8, 9 };

        System.out.println("Index position of 5 is: "

                           + findIndex(my_array, 5));

        System.out.println("Index position of 7 is: "

                           + findIndex(my_array, 7));

    }

}

Output:

Index position of 5 is: 0
Index position of 7 is: 6

Time Complexity: O(N)
Auxiliary Space: O(1)

4. Stream API: Stream is a new abstract layer introduced in Java 8. Using stream, you can process data in a declarative way similar to SQL statements. The stream represents a sequence of objects from a source, which supports aggregate operations. In order to find the index of an element Stream package provides utility, IntStream. Using the length of an array we can get an IntStream of array indices from 0 to n-1, where n is the length of an array.
Below is the implementation of Stream API approach. 

Java

import java.util.stream.IntStream;

public class index {

    public static int findIndex(int arr[], int t)

    {

        int len = arr.length;

        return IntStream.range(0, len)

            .filter(i -> t == arr[i])

            .findFirst()

            .orElse(-1);

    }

    public static void main(String[] args)

    {

        int[] my_array = { 5, 4, 6, 1, 3, 2, 7, 8, 9 };

        System.out.println("Index position of 5 is: "

                           + findIndex(my_array, 5));

        System.out.println("Index position of 7 is: "

                           + findIndex(my_array, 7));

    }

}

Output:

Index position of 5 is: 0
Index position of 7 is: 6

Time Complexity: O(N)
Auxiliary Space: O(1)

5. Using ArrayList

In this approach, we will convert the array into ArrayList, and then we will use the indexOf method of ArrayList to get the index of the element.

Java

import java.util.ArrayList;

public class GFG {

    public static int findIndex(int arr[], int t)

    {

        ArrayList<Integer> clist = new ArrayList<>();

        for (int i : arr)

            clist.add(i);

        return clist.indexOf(t);

    }

    public static void main(String[] args)

    {

        int[] my_array = { 5, 4, 6, 1, 3, 2, 7, 8, 9 };

        System.out.println("Index position of 5 is: "

                           + findIndex(my_array, 5));

        System.out.println("Index position of 7 is: "

                           + findIndex(my_array, 7));

    }

}

Output:

Index position of 5 is: 0
Index position of 7 is: 6

Time Complexity: O(N)
Auxiliary Space: O(N)

6. Using Recursion

We will use recursion to find the first index of the given element.

Java

public class GFG {

    public static int index(int arr[], int t, int start)

    {

        if(start==arr.length)

            return -1;

        if(arr[start]==t)

            return start;

        return index(arr,t,start+1);

    }

    public static int findIndex(int arr[], int t)

    {

        return index(arr,t,0);

    }

    public static void main(String[] args)

    {

        int[] my_array = { 5, 4, 6, 1, 3, 2, 7, 8, 9 };

        System.out.println("Index position of 5 is: "

                + findIndex(my_array, 5));

        System.out.println("Index position of 7 is: "

                + findIndex(my_array, 7));

    }

}

Output:

Index position of 5 is: 0
Index position of 7 is: 6

Time Complexity: O(N)
Auxiliary Space: O(1)

Last Updated :
20 Feb, 2023

Like Article

Save Article

В этом посте представлен обзор доступных методов поиска индекса первого вхождения элемента в массив в C++.

1. Наивное решение

Простое решение — написать собственную процедуру для поиска индекса первого вхождения элемента. Идея состоит в том, чтобы выполнить линейный поиск в заданном массиве для определения индекса. Этот подход демонстрируется ниже:

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

#include <iostream>

using namespace std;

int main()

{

    int arr[] = { 6, 3, 5, 2, 8 };

    int n = sizeof(arr)/sizeof(arr[0]);

    int elem = 2;

    int i = 0;

    while (i < n)

    {

        if (arr[i] == elem) {

            break;

        }

        i++;

    }

    if (i < n)

    {

        cout << «Element « << elem << » is present at index « << i

             << » in the given array»;

    }

    else {

        cout << «Element is not present in the given array»;

    }

    return 0;

}

Скачать  Выполнить код

результат:

Element 2 is present at index 3 in the given array

2. Использование std::find алгоритм

Мы также можем использовать std::find алгоритм, который возвращает итератор, указывающий на целевое значение. Он определен в <algorithm> заголовок. Чтобы получить требуемый индекс, примените арифметику указателя или вызовите std::distance.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

#include <iostream>

#include <algorithm>

using namespace std;

int main()

{

    int arr[] = { 6, 3, 5, 2, 8 };

    int n = sizeof(arr)/sizeof(arr[0]);

    int elem = 2;

    auto itr = find(arr, arr + n, elem);

    if (itr != end(arr))

    {

        cout << «Element « << elem << » is present at index «

             << distance(arr, itr) << » in the given array»;

    }

    else {

        cout << «Element is not present in the given array»;

    }

    return 0;

}

Скачать  Выполнить код

результат:

Element 2 is present at index 3 in the given array

3. Использование std::find_if алгоритм

Иногда требуется найти в массиве элемент, удовлетворяющий определенным условиям. Например, найдите индекс первого двузначного числа в массиве. Рекомендуемый подход заключается в использовании std::find_if алгоритм, который принимает предикат для обработки таких случаев.

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

#include <iostream>

#include <algorithm>

using namespace std;

struct comp

{

    int elem;

    comp(int const &i): elem(i) {}

    bool operator()(int const &i) {

        return (i == elem);

    }

};

int main()

{

    int arr[] = { 6, 3, 5, 2, 8 };

    int n = sizeof(arr)/sizeof(arr[0]);

    int elem = 2;

    auto itr = find_if(arr, arr + n, comp(elem));

    if (itr != end(arr))

    {

        cout << «Element « << elem << » is present at index «

             << distance(arr, itr) << » in the given array»;

    }

    else {

        cout << «Element is not present in the given array»;

    }

    return 0;

}

Скачать  Выполнить код

результат:

Element 2 is present at index 3 in the given array

Вот и все, что касается поиска индекса элемента в массиве в C++.

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования :)

Чтобы найти индекс искомого элемента в массиве можно в цикле перебрать все элементы и сравнить их с искомым. Если они равны, будет выведен индекс первого подходящего элемента.


// Число, которое будем искать
int num = 3;

// Переменная для хранения индекса,
// найденного числа
int index = -1;

int[] arr = {1, 2, 3, 4, 5};

for (int i = 0; i < arr.length; i++) {
    // Если элемент и число равны, то 
    // сохраняй индекс
    if (arr[i] == num) {
        index = i;
    }
}

System.out.println(index); // => 2

Также можно воспользоваться пакетом org.apache.commons.lang, методом indexOf() из класса ArrayUtils для нахождения индекса элемента.

import org.apache.commons.lang3.ArrayUtils;

public class Example {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};

        // индекс числа 3
        int index = ArrayUtils.indexOf(arr, 3);

        System.out.println(index); // => 2
    }
}

1 / 1 / 0

Регистрация: 31.12.2019

Сообщений: 33

Записей в блоге: 2

1

Как теперь найти индекс числа?

13.06.2020, 12:58. Показов 11187. Ответов 7


Студворк — интернет-сервис помощи студентам

У меня есть массив h = [1, 6, 3, 4]
Я нашла max(h), как теперь найти index этого числа? пожалуйста помогите :>
Без срезов



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

13.06.2020, 12:58

Ответы с готовыми решениями:

Как в массиве найти повторяющиеся числа, взять каждого того повторяющегося числа индекс
Как в массиве найти повторяющиеся числа, взять каждого того повторяющегося числа индекс массива в…

В строке первый символ получает индекс 1, последний индекс 2, второй индекс 3, предпоследний индекс 4, третий индекс 5
В строке первый символ получает индекс 1, последний индекс 2, второй индекс 3, предпоследний индекс…

Найти индекс числа в многомерном массиве
Задача стоит такая, мы генерируем массив, N на M, заполняем случайными числами, дальше приступаем к…

Найти индекс наибольшего числа в массиве
1. Вводим неск чисел.Найти индекс наибольшего числа в массиве. Если таких чисел несколько найти…

7

Viktorrus

1728 / 967 / 199

Регистрация: 22.02.2018

Сообщений: 2,694

Записей в блоге: 6

13.06.2020, 13:14

2

Лучший ответ Сообщение было отмечено Вивид как решение

Решение

Вивид, С помощью метода index

Python
1
2
3
>>> h = [1, 6, 3, 4]
>>> h.index(max(h))
1

Добавлено через 2 минуты
Вивид,
list.index
Ищет указанное значение в списке, и возвращает его индекс.
Синтаксис

Python
1
2
3
4
5
6
7
8
9
10
 sequence.index(val[, start[, finish]]) -> int — индекс элемента
 
val : Искомое значение.
 
start=0 : Позиция, начиная с которой следует произвести поиск.
 
finish=len(sequence) : Позиция перед которой следует завершить поиск.
 
 
sequence - последовательность (строка, список или кортеж)



1



Catstail

Модератор

Эксперт функциональных языков программированияЭксперт Python

35559 / 19459 / 4071

Регистрация: 12.02.2012

Сообщений: 32,497

Записей в блоге: 13

13.06.2020, 14:08

3

Цитата
Сообщение от Viktorrus
Посмотреть сообщение

h.index(max(h))

— двукратный проход по массиву. Можно за один проход:

Python
1
2
3
4
5
6
7
8
9
def maxx(arr):
   ma=arr[0]
   i,mi=0,0
   for a in arr:
        if a > ma:
           mi=i
           ma=a
        i+=1
   returm (ma,mi)



1



Garry Galler

13.06.2020, 14:13

Не по теме:

Цитата
Сообщение от Вивид
Посмотреть сообщение

как теперь найти index этого числа?

Вы и так и не рискнули открыть документацию? Да, конечно, она скушнее ковыряния в косметичке, однако избавляет вас и форум от бесполезных вопросов, которые повторяются изо дня в день.



0



1728 / 967 / 199

Регистрация: 22.02.2018

Сообщений: 2,694

Записей в блоге: 6

13.06.2020, 14:20

5

Цитата
Сообщение от Catstail
Посмотреть сообщение

двукратный проход по массиву. Можно за один проход

Для меня на первом месте простота кода К тому же я использую встроенные функции, которые написаны на Си, Так что не известно, что быстрее. Но проверять мне лень, так как скорость меня мало волнует, когда она исчисляется миллисекундами



0



Модератор

Эксперт функциональных языков программированияЭксперт Python

35559 / 19459 / 4071

Регистрация: 12.02.2012

Сообщений: 32,497

Записей в блоге: 13

13.06.2020, 14:24

6

Цитата
Сообщение от Viktorrus
Посмотреть сообщение

Для меня на первом месте простота кода К тому же я использую встроенные функции, которые написаны на Си, Так что не известно, что быстрее.

— а для меня — понимание сути. Что же до «встроенных функций», то можно найти список некоего размера N, на котором однократный проход питоновским кодом будет быстрее двукратного — сишным.



0



1728 / 967 / 199

Регистрация: 22.02.2018

Сообщений: 2,694

Записей в блоге: 6

13.06.2020, 14:33

7

Цитата
Сообщение от Catstail
Посмотреть сообщение

можно найти список некоего размера N

Задан конкретный список и я дал решение в соответствии с условием. Решать для всех случаев, включая бесконечные последовательности с прерыванием процесса по времени, у меня нет желания, так как это уже другая задача.
Извините, меня данное задание уже перестало интересовать. Удачи.



0



Catstail

Модератор

Эксперт функциональных языков программированияЭксперт Python

35559 / 19459 / 4071

Регистрация: 12.02.2012

Сообщений: 32,497

Записей в блоге: 13

13.06.2020, 14:37

8

Цитата
Сообщение от Viktorrus
Посмотреть сообщение

Задан конкретный список и я дал решение в соответствии с условием. Решать для всех случаев, включая бесконечные последовательности с прерыванием процесса по времени, у меня нет желания, так как это уже другая задача.

— задачу нужно всегда решать в максимальной общности. Для конкретной же задачи (в Вашей т.з.) оптимальным решением будет:

Python
1
print(1)



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

13.06.2020, 14:37

8

Понравилась статья? Поделить с друзьями:
  • Как найти человека по телефону это реально
  • Irq канал клавиатуры как найти
  • 1с документооборот как найти договор
  • Нарушение всех средств языка как исправить
  • Как найти информационный объем растрового графического изображения