Jadual Kandungan
Carian Linear
算法
在下面的示例中,我们将学习使用线性搜索在数组中查找元素的过程。
上述程序的输出如下:
在下面的例子中,我们将学习使用递归方法在数组中进行线性搜索的过程。
二分查找算法与线性查找算法相当不同。它遵循完全不同的过程来搜索索数。只考虑有序数组。
Example
Output
Rumah pembangunan bahagian belakang Tutorial Python Program Python untuk mencari elemen dalam tatasusunan

Program Python untuk mencari elemen dalam tatasusunan

Sep 17, 2023 pm 07:45 PM
program python Elemen carian Carian susunan

Program Python untuk mencari elemen dalam tatasusunan

Dalam Python, terdapat terutamanya dua algoritma carian yang digunakan secara meluas. Daripada itu, yang pertama ialah Carian Linear dan yang kedua ialah Carian Binari.

Kedua-dua teknik ini digunakan terutamanya untuk mencari elemen dari tatasusunan yang diberikan atau dari senarai yang diberikan juga. Semasa mencari elemen, terdapat dua metodologi yang boleh diikuti dalam sebarang jenis algoritma. Salah satunya ialah pendekatan rekursif dan satu lagi pendekatan berulang. Mari kita bincangkan kedua-dua algoritma dalam kedua-dua pendekatan dan selesaikan masalah yang serupa.

Carian Linear

Teknik Linear Search juga dikenali sebagai Sequential search. Maksud nama " Carian berurutan " pasti dibenarkan oleh proses yang diikuti oleh algoritma carian ini. Ia ialah kaedah atau teknik yang digunakan untuk mencari elemen dalam tatasusunan atau senarai dalam Python.

它被认为是所有其他搜索算法中最简单和最容易的。但是,这个索算法中最简单和最容易的。但是,这个索算法中最简单和最容易的。但是,这个算法的唯一法的唯一界。就是为什么不经常使用线性搜索的主要原因。

算法

  • Langkah 1 − Ia mencari elemen dalam susunan berurutan hanya dengan membandingkan elemen yang dikehendaki dengan setiap elemen yang terdapat dalam tatasusunan yang diberikan.

  • 步骤 2 − 如果找到所需的元素,则会将元素的索引或位置显示绷癎。

  • Langkah 3

    − Jika elemen tidak hadir dalam tatasusunan, maka pengguna akan dimaklumkan bahawa elemen itu tidak ditemui. Dengan cara ini, algoritma diproses.

  • Secara amnya, algoritma carian Linear secara perbandingan sesuai dan cekap untuk tatasusunan kecil atau senarai kecil yang mempunyai saiz kurang daripada atau sama dengan 100 kerana ia menyemak dan membandingkan dengan setiap elemen.

    如果所需元素位于数组的最后位置,将会消耗更多时间。
  • 线性搜索算法在最佳情况下的时间复杂度为“ O( 1 ) ”。在这种情况下,尀不素下,広不素下,庆不素为“位置,即索引为“ 0 ”。
  • Kerumitan Masa algoritma Carian Linear dalam kes purata ialah “ O( n ) ”. Dalam kes ini, elemen akan hadir di kedudukan tengah tatasusunan, iaitu, dengan indeks “ ( n – 1 ) / 2 ” atau “ (( n – 1 ) / 2 )+ 1 ”.
  • Kerumitan Masa algoritma Carian Linear dalam kes terburuk ialah “ O( n ) ”. Dalam kes ini, elemen akan hadir dalam kedudukan terakhir tatasusunan, iaitu, dengan indeks “ n-1 ”.
  • Contoh

在下面的示例中,我们将学习使用线性搜索在数组中查找元素的过程。

def iterative_linear( arr, n, key_element):
   for x in range(n):
      if(arr[x] == key_element):
         return x
   return -1
arr = [2, 3, 5, 7, 9, 1, 4, 6, 8, 10]
max_size = len(arr)
key = 8
result = iterative_linear(arr, max_size - 1, key)
if result != -1:
   print ("The element", key," is found at the index " ,(result), "and in the ", (result+1), "position")
else:
   print ("The element %d is not present in the given array" %(key))
Salin selepas log masuk

Output

上述程序的输出如下:

The element 8  is found at the index  8 and in the  9 position
Salin selepas log masuk
Salin selepas log masuk

Contoh (Rekursif)

在下面的例子中,我们将学习使用递归方法在数组中进行线性搜索的过程。

def recursive_linear( arr, first_index, last_index, key_element):
   if last_index < first_index:
      return -1
   if arr[first_index] == key_element:
      return first_index
   if arr[last_index] == key_element:
      return last_index  
   return recursive_linear(arr, first_index + 1, last_index - 1, key_element)

arr = [2, 3, 5, 7, 9, 1, 4, 6, 8, 10]
max_size = len(arr)
key = 8
result = recursive_linear(arr, 0, max_size - 1, key)
if result != -1:
   print ("The element", key," is found at the index " ,(result), "and in the ", (result+1), "position")
else:
   print ("The element %d is not present in the given array" %(key))
Salin selepas log masuk

Output

上述程序的输出如下:

The element 8  is found at the index  8 and in the  9 position
Salin selepas log masuk
Salin selepas log masuk

Carian Binari

二分查找算法与线性查找算法相当不同。它遵循完全不同的过程来搜索索数。只考虑有序数组。

如果数组在某些情况下没有排序,则对数组进行排序,然后开始二分有排序,则对数组进行排序,然后开始二分搇民索。组被二分搜索算法考虑,它首先被排序,然后算法被应用于数组。

算法

  • 步骤 1

    − 对数组进行排序是第一步。

  • Langkah 2

    − Selepas tatasusunan diisih, tatasusunan dianggap sebagai dua bahagian. Satu separuh bermula dari elemen pertama hingga elemen tengah tatasusunan yang diisih dan separuh kedua bermula dari elemen selepas elemen tengah hingga elemen terakhir tatasusunan yang diisih.

  • Langkah 3

    − Elemen utama (elemen yang sepatutnya dicari dikenali sebagai elemen utama) dibandingkan dengan elemen tengah tatasusunan yang diisih.

  • Langkah 4

    − Jika elemen kunci kurang daripada atau sama dengan elemen tengah tatasusunan yang diisih, elemen separuh kedua diabaikan lagi kerana elemen kunci lebih kecil daripada elemen tengah. Jadi, pastinya, elemen itu mesti ada di antara elemen pertama dan elemen tengah.

  • Langkah 6

    − Jika elemen utama lebih besar daripada elemen tengah, maka separuh pertama tatasusunan yang diisih diabaikan dan elemen dari elemen tengah hingga elemen terakhir dipertimbangkan.

  • Langkah 7

    − Daripada elemen tersebut, elemen utama sekali lagi dibandingkan dengan elemen tengah tatasusunan separuh dan mengulangi prosedur yang sama. Jika elemen utama lebih besar daripada elemen tengah tatasusunan separuh, maka separuh pertama diabaikan.

  • 第8步 - 如果关键元素小于或等于被分割数组的中间元素,则被分割数组的后半部分将被忽略。通过这种方式,元素将在数组的任意一半中进行搜索。

因此,与线性搜索相比,复杂度减少了一半或更多,因为有一半的元素将在第一步中被移除或不被考虑。二分搜索的最佳情况时间复杂度为“O(1)”。二分搜索的最坏情况时间复杂度为“O(logn)”。这就是二分搜索算法的工作原理。让我们考虑一个例子,并应用二分搜索算法来找出数组中的关键元素。

Example

In this example, we are going to learn about the process of searching an element in an array using Binary search in recursive approach.

def recursive_binary(arr, first, last, key_element):
   if first <= last:
      mid = (first + last) // 2 
   if arr[mid] == key_element:
      return mid
   elif arr[mid] > key_element:
      return recursive_binary(arr, first, mid - 1, key_element)
   elif arr[mid] < key_element:  
      return recursive_binary(arr, mid + 1, last, key_element)  
   else:  
      return -1 

arr = [20, 40, 60, 80, 100] 
key = 80 
max_size = len(arr)
result = recursive_binary(arr, 0, max_size - 1, key)  
if result != -1:  
   print("The element", key, "is present at index", (result), "in the position", (result + 1)) 
else:  
   print("The element is not present in the array") 
Salin selepas log masuk

Output

上述程序的输出如下:

The element 80  is found at the index 3 and in the position 4
Salin selepas log masuk
Salin selepas log masuk

Example

In this example, we are going to learn about the process of searching an element in an array using Binary search in iterative approach.

def iterative_binary(arr, last, key_element):
   first = 0
   mid = 0
   while first <= last: 

      mid = (first + last) // 2 
      if arr[mid] < key_element:
         first = mid + 1 

      elif arr[mid] > key_element: 
         last = mid - 1 

      else: 
         return mid 

   return -1 

arr = [20, 40, 60, 80, 100] 
key = 80 
max_size = len(arr)

result = iterative_binary(arr, max_size - 1, key)  

if result != -1:  
   print("The element", key, "is present at index", (result), "in the position", (result + 1)) 
else:  
   print("The element is not present in the array")
Salin selepas log masuk

Output

上述程序的输出如下:

The element 80  is found at the index 3 and in the position 4
Salin selepas log masuk
Salin selepas log masuk

这是二分搜索算法的工作原理。根据时间复杂度的概念,我们可以肯定二分搜索算法比线性搜索算法更高效,时间复杂度在其中起着重要的作用。通过使用这种类型的算法,可以搜索数组中的元素。尽管用于解决问题的过程不同,但结果不会波动。这是使用多种算法检查输出一致性的一个优点。

Atas ialah kandungan terperinci Program Python untuk mencari elemen dalam tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menjalankan program python dalam notepad++ Bagaimana untuk menjalankan program python dalam notepad++ Apr 08, 2024 am 03:24 AM

Menggunakan Notepad++ untuk menjalankan program Python memerlukan langkah berikut: 1. Pasang pemalam Python 2. Buat fail Python 3. Tetapkan pilihan jalankan;

Tutorial penggunaan PyCharm: membimbing anda secara terperinci untuk menjalankan operasi Tutorial penggunaan PyCharm: membimbing anda secara terperinci untuk menjalankan operasi Feb 26, 2024 pm 05:51 PM

PyCharm ialah persekitaran pembangunan bersepadu (IDE) Python yang sangat popular. Ia menyediakan pelbagai fungsi dan alatan untuk menjadikan pembangunan Python lebih cekap dan mudah. Artikel ini akan memperkenalkan anda kepada kaedah operasi asas PyCharm dan menyediakan contoh kod khusus untuk membantu pembaca memulakan dengan cepat dan menjadi mahir dalam mengendalikan alat tersebut. 1. Muat turun dan pasang PyCharm Pertama, kita perlu pergi ke laman web rasmi PyCharm (https://www.jetbrains.com/pyc

Tutorial Lanjutan PyCharm: Gunakan PyInstaller untuk membungkus kod ke dalam format EXE Tutorial Lanjutan PyCharm: Gunakan PyInstaller untuk membungkus kod ke dalam format EXE Feb 20, 2024 am 09:34 AM

PyCharm ialah persekitaran pembangunan bersepadu Python yang berkuasa yang menyediakan pelbagai fungsi dan alatan untuk membantu pembangun meningkatkan kecekapan. Antaranya, PyInstaller ialah alat yang biasa digunakan yang boleh membungkus kod Python ke dalam fail boleh laku (format EXE) untuk memudahkan berjalan pada mesin tanpa persekitaran Python. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PyInstaller dalam PyCharm untuk membungkus kod Python ke dalam format EXE, dan menyediakan khusus

Adakah PyCharm Community Edition menyokong pemalam yang mencukupi? Adakah PyCharm Community Edition menyokong pemalam yang mencukupi? Feb 20, 2024 pm 04:42 PM

Adakah PyCharm Community Edition menyokong pemalam yang mencukupi? Perlukan contoh kod khusus Memandangkan bahasa Python semakin digunakan secara meluas dalam bidang pembangunan perisian, PyCharm, sebagai persekitaran pembangunan bersepadu (IDE) Python profesional, digemari oleh pembangun. PyCharm dibahagikan kepada dua versi: versi profesional dan versi komuniti Versi komuniti disediakan secara percuma, tetapi sokongan pemalamnya terhad berbanding versi profesional. Jadi persoalannya, adakah PyCharm Community Edition menyokong pemalam yang mencukupi? Artikel ini akan menggunakan contoh kod khusus untuk

Llama3 datang secara tiba-tiba! Komuniti sumber terbuka sedang mendidih lagi: era akses percuma kepada model peringkat GPT4 telah tiba Llama3 datang secara tiba-tiba! Komuniti sumber terbuka sedang mendidih lagi: era akses percuma kepada model peringkat GPT4 telah tiba Apr 19, 2024 pm 12:43 PM

Llama3 ada di sini! Sebentar tadi, laman web rasmi Meta telah dikemas kini dan rasminya mengumumkan versi parameter Llama 38 bilion dan 70 bilion. Dan ia adalah SOTA sumber terbuka selepas pelancarannya: Data rasmi Meta menunjukkan bahawa versi Llama38B dan 70B mengatasi semua lawan dalam skala parameter masing-masing. Model 8B mengatasi prestasi Gemma7B dan Mistral7BInstruct pada banyak penanda aras seperti MMLU, GPQA dan HumanEval. Model 70B telah mengatasi ayam goreng sumber tertutup yang popular Claude3Sonnet, dan telah berulang-alik dengan GeminiPro1.5 Google. Sebaik sahaja pautan Huggingface keluar, komuniti sumber terbuka kembali teruja. Pelajar buta yang bermata tajam itu turut menemui serta-merta

proses pembangunan program python proses pembangunan program python Apr 20, 2024 pm 09:22 PM

Proses pembangunan program Python merangkumi langkah-langkah berikut: Analisis keperluan: menjelaskan keperluan perniagaan dan matlamat projek. Reka bentuk: Tentukan seni bina dan struktur data, lukis carta alir atau gunakan corak reka bentuk. Menulis kod: Program dalam Python, mengikut konvensyen pengekodan dan komen dokumentasi. Pengujian: Menulis ujian unit dan integrasi, menjalankan ujian manual. Semak dan Refactor: Semak kod untuk mencari kelemahan dan meningkatkan kebolehbacaan. Sebarkan: Sebarkan kod ke persekitaran sasaran. Penyelenggaraan: Betulkan pepijat, tingkatkan fungsi dan pantau kemas kini.

Tutorial pemasangan dan konfigurasi kelalang: alat untuk membina aplikasi web Python dengan mudah Tutorial pemasangan dan konfigurasi kelalang: alat untuk membina aplikasi web Python dengan mudah Feb 20, 2024 pm 11:12 PM

Tutorial pemasangan dan konfigurasi kelalang: Alat untuk membina aplikasi Web Python dengan mudah, contoh kod khusus diperlukan Pengenalan: Dengan peningkatan populariti Python, pembangunan Web telah menjadi salah satu kemahiran yang diperlukan untuk pengaturcara Python. Untuk menjalankan pembangunan web dalam Python, kita perlu memilih rangka kerja web yang sesuai. Di antara banyak rangka kerja Web Python, Flask ialah rangka kerja yang ringkas, mudah digunakan dan fleksibel yang digemari oleh pembangun. Artikel ini akan memperkenalkan pemasangan rangka kerja Flask,

Bermula dengan Python GIL: Cara memahami dan menggunakan kunci penterjemah global Bermula dengan Python GIL: Cara memahami dan menggunakan kunci penterjemah global Feb 27, 2024 am 09:10 AM

Apa itu GIL? GIL ialah singkatan kunci penterjemah global, yang merupakan konsep penting penterjemah python. GIL memastikan bahawa penterjemah Python hanya boleh melaksanakan satu utas pada satu masa. Ini bermakna pada bila-bila masa, hanya satu utas boleh menjalankan kod bait Python. Benang lain mesti menunggu GIL tersedia sebelum meneruskan pelaksanaan. Bagaimanakah GIL berfungsi? GIL ialah kunci yang ditulis dalam C dan terletak dalam penterjemah Python. Apabila benang ingin melaksanakan kod bait Python, ia mesti mendapatkan GIL terlebih dahulu. Jika GIL sudah dipegang oleh benang lain, benang itu mesti menunggu GIL tersedia sebelum meneruskan pelaksanaan. Apakah kesan GIL pada program Python? GIL untuk Python

See all articles