Perbatasan Superb Masalah Subarray

- Penulis

Minggu, 16 Maret 2025 - 21:30 WIB

facebook twitter whatsapp telegram line copy

URL berhasil dicopy

facebook icon twitter icon whatsapp icon telegram icon line icon copy

URL berhasil dicopy

Perbatasan Superb Masalah Subarray

[ad_1]

Algoritma Kadane adalah teknik pemrograman dinamis yang digunakan untuk menemukan jumlah subarray maksimum dalam array angka yang diberikan. Dinamai setelah penemunya, Jay Kadane, algoritma yang elegan ini mempunyai aplikasi di berbagai domain, dari ilmu komputer dan analisis knowledge sampai keuangan dan pemrosesan gambar. Akan bermanfaat bagi Anda untuk memahami mekanisme yang mendasari algoritma Kadane, implementasi kode Java, proses langkah demi langkah, algoritma Leetcode Kadane, C, C ++, kompleksitas waktunya, keunggulan dan gangguan, aplikasi praktis, dan sejumlah besar lagi.

ADVERTISEMENT

SCROLL TO RESUME CONTENT

Apa algoritma Kadane?

Algoritma Kadane adalah algoritma waktu linier yang digunakan untuk menemukan jumlah subarray maksimum dalam array yang diberikan. Subarray didefinisikan sebagai subset elemen yang berdekatan dalam array. Algoritma ini menangani angka positif dan negatif dengan sangat efisien, yang menjadikannya alat serba guna untuk menghentikan sejumlah besar masalah yang melibatkan subarray.

Bekerja dari algoritma Kadane

Algoritma Kadane memakai pendekatan pemrograman dinamis yang secara iteratif menghitung jumlah subarray maksimum yang berakhir pada setiap posisi dalam array. Wawasan kritis di balik algoritma adalah untuk mempertimbangkan jumlah subarray maksimum yang berakhir pada posisi sementara itu dan memperbarui berdasarkan jumlah subarray maksimum sebelumnya.

Proses langkah demi langkah algoritma Kadane

Berikut ini adalah kerusakan langkah demi langkah tentang cara kerja algoritma Kadane:

  • Inisialisasi dua variabel, max_so_far dan max_ending_here, ke 0.
  • Iterasi melalui array dari kiri ke kanan, memeriksa setiap elemen satu in step with satu.
  • Untuk setiap elemen, perbarui max_ending_here sebagai nilai maksimum adalah elemen sementara itu atau jumlah elemen sementara itu dan max_ending_here.
  • Perbarui max_so_far sebagai maksimum dari max_so_far sementara itu atau max_ending_here.
  • Ulangi langkah 3 dan 4 untuk semua elemen dalam array.
  • Nilai max_so_far di akhir iterasi akan menjadi jumlah subarray maksimum.
Baca Juga:  Batu Akik Pancawarna Garut Menggegerkan Pasar Internasional Setelah Jadi Suvenir Konferensi Asia Afrika ke-60

Contoh

Mari kita ilustrasikan algoritma Kadane di Java dengan contoh:

Array Enter: (-2, 1, -3, 4, -1, 2, 1, -5, 4)

  • Inisialisasi max_so_far dan max_ending_here sebagai 0.
  • Mulailah iterasi melalui array:
    • Pada elemen -2: max_ending_here menjadi -2 (sebab maksimum -2 dan 0).
    • MAX_SO_FAR tetap 0.
    • Pada elemen 1: max_ending_here menjadi 1 (sebab maksimum 1 dan -2 + 1).
    • max_so_far menjadi 1 (sebab maksimum 1 dan 0).
    • Lanjutkan proses ini untuk seluruh array.
  • Setelah iterasi, max_so_far adalah 6, jumlah subarray maksimum.

Subarray maksimum dalam contoh ini adalah (4, -1, 2, 1), dengan jumlah 6.

Implementasi Kode dalam C, C ++, dan Java:

Berikut adalah implementasi kode algoritma Kadane di C, C ++, dan Java:

C:

C

Salin kode

#termasuk

int maxsubarraysum (int arr (), int ukuran) {

int max_so_far = 0, max_ending_here = 0;

untuk (int i = 0; i

max_ending_here = max_ending_here + arr (i);

if (max_ending_here <0) {

max_ending_here = 0;

}

if (max_so_far

max_so_far = max_ending_here;

}

}

go back max_so_far;

}

int major () {

int arr () = {-2, 1, -3, 4, -1, 2, 1, -5, 4};

ukuran int = sizeof (ARR) / sizeof (ARR (0));

int maxsum = maxsubarraysum (arr, measurement);

printf (“jumlah subarray maksimum adalah %d n”, maxsum);

kembali 0;

}

C ++:

CPP

Salin kode

#termasuk

memakai namespace std;

int maxsubarraysum (int arr (), int ukuran) {

int max_so_far = 0, max_ending_here = 0;

untuk (int i = 0; i

max_ending_here = max_ending_here + arr (i);

if (max_ending_here <0) {

max_ending_here = 0;

}

if (max_so_far

max_so_far = max_ending_here;

}

}

go back max_so_far;

}

int major () {

int arr () = {-2, 1, -3, 4, -1, 2, 1, -5, 4};

ukuran int = sizeof (ARR) / sizeof (ARR (0));

Baca Juga:  Ulasan OnePlus Watch 2R - berita GSMArena.com

int maxsum = maxsubarraysum (arr, measurement);

cout << "jumlah subarray maksimum adalah" << maxsum << endl;

kembali 0;

}

Jawa:

Jawa

Salin kode

Kelas Publik Kadanealgorithm {

public static int maxsubarraysum (int () arr) {

int max_so_far = 0, max_ending_here = 0;

untuk (int i = 0; i

max_ending_here = max_ending_here + arr (i);

if (max_ending_here <0) {

max_ending_here = 0;

}

if (max_so_far

max_so_far = max_ending_here;

}

}

go back max_so_far;

}

public static void major (string () args) {

int () arr = {-2, 1, -3, 4, -1, 2, 1, -5, 4};

int maxsum = maxsubarraysum (ARR);

Machine.out.println (“jumlah subarray maksimum adalah” + maxsum);

}

}

Kompleksitas waktu

Algoritma Kadane mempunyai kompleksitas waktu O (n), di mana N adalah jumlah elemen dalam array enter. Ini membuatnya sangat efisien dan cocok untuk kumpulan knowledge besar.

Keuntungan dan Kerugian Algoritma Kadane

Keuntungan dari algoritma Kadane

  • Efisien dengan kompleksitas waktu O (n).
  • Menangani bilangan positif dan negatif.
  • Sederhana dan mudah diimplementasikan.

Kerugian dari algoritma Kadane

  • Ini hanya memberikan jumlah subarray maksimum, bukan subarray yang nyatanya itu sendiri (meski demikian modifikasi bisa dilakukan untuk mengawasi subarray).

Aplikasi algoritma Kadane

Algoritma Kadane menemukan aplikasi di berbagai bidang, termasuk

Ilmu Komputer

Digunakan dalam algoritma optimasi dan memecahkan masalah yang keterkaitan dengan array dan selanjutnya.

Keuangan

Menganalisis knowledge keuangan untuk menemukan portofolio investasi berkinerja terbaik.

Analisis Information

Mengidentifikasi jumlah subarray maksimum dalam dataset, seperti harga saham, untuk menyelesaikan waktu terbaik untuk membeli atau menjual.

Pemrosesan gambar

Mendeteksi pola dan fitur dalam gambar atau video.

Genomik

Menganalisis sekuens DNA untuk menemukan selanjutnya dengan signifikansi maksimum.

Kesimpulan

Algoritma Kadane adalah alat yang ampuh untuk secara efisien menemukan jumlah subarray maksimum dalam array angka. Kesederhanaan, keserbagunaan, dan kompleksitas waktu linier membuatnya berharga di berbagai domain, dari ilmu komputer sampai keuangan dan seterusnya. Dengan memahami cara kerja dan aplikasinya, Anda bisa mendapatkan manfaat dari potensi penuh dari algoritma ini untuk memecahkan berbagai masalah dunia nyata.

Baca Juga:  AMD Tunda Peluncuran Seri Ryzen 9000 dengan Alasan Masalah Kualitas

Andai Anda ingin meningkatkan keterampilan pengembangan perangkat lunak Anda lebih lanjut, kami akan menyarankan Anda memeriksa Simplilearn's Program Sertifikat Profesional dalam Pengembangan Tumpukan Lengkap – Mern. Program ini, bekerja sama dengan IIT Madras, bisa membantu Anda dalam mengembangkan keterampilan yang diperlukan dan mempersiapkan Anda untuk pekerjaan, memastikan Anda siap kerja.

Andai Anda mempunyai pertanyaan atau keraguan, jangan ragu untuk mempostingnya di bagian komentar di bawah ini. Tim kami akan kembali kepada Anda paling awal.

FAQ

Mengapa algoritma Kadane penting?

Algoritma Kadane sangat penting sebab secara efisien menemukan jumlah subarray maksimum dalam array, masalah dengan sejumlah besar aplikasi di berbagai domain, termasuk ilmu komputer, keuangan, dan analisis knowledge.

Apa algoritma Kadane untuk substring?

Algoritma Kadane terutama digunakan untuk menemukan jumlah subarray maksimum, bukan substring. Tetapi, bisa disesuaikan untuk mengawasi indeks awal dan akhir dari subarray maksimum untuk dapatkan substring itu sendiri.

Di mana algoritma Kadane digunakan?

Algoritma Kadane digunakan dalam ilmu komputer untuk mengoptimalkan algoritma dan dalam keuangan, analisis knowledge, pemrosesan gambar, genomik, dan sejumlah besar lagi, di mana pun jumlah subarray maksimum perlu ditentukan.

Apa algoritma serakah Kadane?

Algoritma Kadane kadang -kadang disebut algoritma serakah sebab membuat pilihan optimum lokal (menjaga subarray maksimum berakhir pada posisi sementara itu) pada setiap langkah, yang akhirnya mengarah ke solusi optimum global (jumlah subarray maksimum).

(Tagstotranslate) Kadane

[ad_2]

Sumber: simplilearn-com



Berita Terkait

10 Lodge Terbaik Dekat Danau Toba untuk Liburan Santai 2025
Orang Tunggu Sendiri Patuh 8 Aturan Kuat Ini, Menurut Psikologi
Daftar 8 Tim Lolos Babak 32 Besar Piala Dunia U17 2025, Apakah Timnas Indonesia Dapat Ikut?
Mengapa Fairing Motor Sport 150 Kini Menghilang dari Showroom?
Kucing Dapat Alami Demensia! 8 Tanda yang Perlu Diwaspadai
Ban Lebih Lebar: Manfaat dan Risikonya
Jawa Timur Juara Nusantaraya di ICCF 2025, Buktikan Kepemimpinan Ekonomi Kreatif Nasional
Andai Tidak Dapat Lakukan 8 Hal Ini, Anda Mungkin saja Tua Lebih Cepat, Tutur Psikologi

Berita Terkait

Rabu, 10 Desember 2025 - 23:59 WIB

10 Lodge Terbaik Dekat Danau Toba untuk Liburan Santai 2025

Rabu, 10 Desember 2025 - 23:14 WIB

Orang Tunggu Sendiri Patuh 8 Aturan Kuat Ini, Menurut Psikologi

Rabu, 10 Desember 2025 - 21:44 WIB

Daftar 8 Tim Lolos Babak 32 Besar Piala Dunia U17 2025, Apakah Timnas Indonesia Dapat Ikut?

Rabu, 10 Desember 2025 - 20:59 WIB

Mengapa Fairing Motor Sport 150 Kini Menghilang dari Showroom?

Rabu, 10 Desember 2025 - 19:29 WIB

Kucing Dapat Alami Demensia! 8 Tanda yang Perlu Diwaspadai

Berita Terbaru