Pemilihan Algoritma Optimal di PHP
Terkadang masalah pada kode terkait dengan dipilihnya solusi yang tidak paling optimal untuk masalah tersebut.
Misalnya, kita dihadapkan pada tugas
untuk mencari jumlah bilangan bulat dari 1 hingga 1000000.
Mari kita selesaikan tugas yang diberikan:
<?php
$sum = 0;
for ($i = 1; $i <= 1000000; $i++) {
$sum += $i;
}
echo $i;
?>
Apa yang salah? Masalahnya adalah untuk menyelesaikan tugas yang diberikan, terdapat solusi matematis.
Solusi ini hampir tidak memerlukan sumber daya! Mari kita programkan:
<?php
$n = 1000000;
$sum = $n * ($n + 1) / 2;
echo $sum;
?>
Pelajaran: sebelum menyelesaikan tugas yang membutuhkan banyak sumber daya, pastikan untuk memeriksa apakah ada rumus matematika yang sudah jadi atau pendekatan matematis yang sudah jadi untuk solusinya.
Temukan jumlah angka yang habis dibagi tanpa sisa
oleh 5, dalam rentang dari 1 hingga
1000.
Temukan jumlah digit yang diperlukan
untuk menulis semua angka dari 1 hingga 1000000.
Temukan semua bilangan prima dalam rentang dari
1 hingga 10000. Tugas dengan tanda bintang,
boleh tidak diselesaikan.