Rumah Keuangan Pribadi Bekerja dengan Fungsi Algoritma - dummies

Bekerja dengan Fungsi Algoritma - dummies

Video: 7 MACAM PROGRAMMER 2024

Video: 7 MACAM PROGRAMMER 2024
Anonim

Fungsi matematika hanyalah cara untuk memetakan beberapa masukan ke sebuah respons. Dinyatakan dengan cara yang berbeda, fungsi adalah transformasi (berdasarkan operasi matematika) yang mengubah (memetakan) masukan Anda ke sebuah jawaban.

Untuk nilai input tertentu (biasanya dilambangkan dengan huruf x atau n), Anda memiliki jawaban yang sesuai dengan menggunakan matematika yang mendefinisikan fungsinya. Misalnya, fungsi seperti f (n) = 2 n memberi tahu Anda bahwa bila masukan Anda adalah angka n, jawaban Anda adalah bilangan n dikalikan dengan 2.

Dengan menggunakan ukuran input tidak masuk akal mengingat ini adalah zaman yang kritis dan kehidupan manusia dijejali dengan semakin banyaknya data. Membuat semua fungsi matematika sedikit kurang intuitif, namun sebuah fungsi yang menjelaskan bagaimana algoritma menghubungkan solusinya dengan jumlah data yang diterimanya adalah sesuatu yang dapat Anda analisis tanpa dukungan perangkat keras atau perangkat lunak tertentu. Ini juga mudah untuk membandingkan dengan solusi lain, mengingat ukuran masalah Anda. Analisis algoritma benar-benar konsep mind-blowing karena mengurangi serangkaian langkah kompleks menjadi formula matematika.

Selain itu, sebagian besar waktu, analisis algoritma bahkan tidak tertarik untuk menentukan fungsinya dengan tepat. Yang benar-benar ingin Anda lakukan adalah membandingkan fungsi target dengan fungsi lain. Fungsi perbandingan ini muncul dalam satu set fungsi yang diusulkan yang berkinerja buruk bila dibandingkan dengan algoritma target. Dengan cara ini, Anda tidak perlu memasukkan nomor ke fungsi kompleksitas yang lebih besar atau lebih kecil; Sebagai gantinya, Anda berurusan dengan fungsi sederhana, premade, dan terkenal. Ini mungkin terdengar kasar, tapi lebih efektif dan serupa dengan mengklasifikasi kinerja algoritma ke dalam kategori, daripada mendapatkan pengukuran kinerja yang tepat.

Kumpulan fungsi umum disebut notasi Big O, dan Anda sering menemukan kumpulan fungsi kecil ini (dimasukkan ke dalam tanda kurung dan didahului oleh sebuah modal O >) digunakan untuk mewakili kinerja algoritma. Angka tersebut menunjukkan analisis algoritma. Sistem koordinat Cartesian dapat mewakili fungsinya yang diukur dengan simulasi RAM, di mana abscissa (koordinat x) adalah ukuran input dan koordinat ordinat (koordinat y) adalah menghasilkan jumlah operasi. Anda dapat melihat tiga kurva yang diwakili. Ukuran input penting. Namun, kualitas juga penting (misalnya saat memesan masalah, lebih cepat memesan masukan yang sudah hampir dipesan).Akibatnya, analisis menunjukkan kasus terburuk, f 1 (n), kasus rata-rata, f 2 (n), dan kasus terbaik, f 3 (n). Meskipun kasus rata-rata mungkin memberi Anda gagasan umum, yang benar-benar Anda pedulikan adalah kasus terburuk, karena masalah mungkin timbul saat algoritme Anda berjuang mencapai solusi. Fungsi Big O adalah nilai setelah

n0 (ambang untuk mempertimbangkan masukan besar), selalu menghasilkan jumlah operasi yang lebih besar dengan input yang sama daripada fungsi terburuk > f1 . Dengan demikian, fungsi Big O bahkan lebih pesimis daripada yang mewakili algoritma Anda, sehingga tidak masalah kualitas inputnya, Anda bisa yakin hal itu tidak bisa menjadi lebih buruk dari itu. Kompleksitas algoritma dalam kasus kasus masukan terbaik, rata-rata, dan terburuk. Banyak kemungkinan fungsi dapat menghasilkan hasil yang lebih buruk, namun pilihan fungsi yang ditawarkan oleh notasi Big O yang dapat Anda gunakan dibatasi karena tujuannya adalah untuk menyederhanakan pengukuran kompleksitas dengan mengajukan standar. Akibatnya, bagian ini hanya berisi beberapa fungsi yang merupakan bagian dari notasi Big O. Daftar berikut menggambarkannya dalam urutan kompleksitas yang meningkat:

Kompleksitas konstan O (1):

Saat yang sama, tidak peduli berapa banyak masukan yang Anda berikan. Pada akhirnya, ini adalah jumlah konstan operasi, tidak peduli berapa lama input data. Tingkat kompleksitas ini cukup langka dalam praktiknya.

  • Kompleks logaritma O (log n): Jumlah operasi tumbuh pada tingkat yang lebih lambat dari pada input, membuat algoritma kurang efisien dengan input kecil dan lebih efisien dengan yang lebih besar. Algoritma khas kelas ini adalah pencarian biner.
  • Kompleksitas linier O (n): Operasi tumbuh dengan input dalam rasio 1: 1. Algoritma yang khas adalah iterasi, yaitu saat Anda memindai input sekali dan menerapkan operasi ke setiap elemennya.
  • Kompleksitas linier O (n log n): Kompleksitas adalah perpaduan antara kompleksitas logaritmik dan linier. Ini adalah tipikal dari beberapa algoritma cerdas yang digunakan untuk memesan data, seperti Mergesort, Heapsort, dan Quicksort.
  • Kompleksitas kuadrat O (n 2
  • ): Operasi tumbuh sebagai kuadrat jumlah input. Bila Anda memiliki satu iterasi di dalam iterasi lain (nested iterasi, dalam ilmu komputer), Anda memiliki kompleksitas kuadrat. Misalnya, Anda memiliki daftar nama dan, untuk menemukan yang paling mirip, Anda membandingkan setiap nama dengan semua nama lainnya. Beberapa algoritma pemesanan yang kurang efisien menyajikan kompleksitas seperti itu: sort bubble, sort sort selection, dan insertion sort. Tingkat kompleksitas ini berarti bahwa algoritma Anda dapat berjalan berjam-jam atau bahkan berhari-hari sebelum mencapai solusi. Kompleksitas kubus O (n 3
  • ): Operasi tumbuh lebih cepat daripada kompleksitas kuadrat karena sekarang Anda memiliki beberapa iterasi bersarang. Ketika sebuah algoritma memiliki urutan kompleksitas ini dan Anda perlu mengolah sejumlah data sederhana (100, 000 elemen), algoritme Anda dapat berjalan selama bertahun-tahun.Bila Anda memiliki sejumlah operasi yang merupakan kekuatan input, adalah umum untuk merujuk ke algoritma sebagai yang berjalan pada waktu polinomial. Kompleksitas eksponensial O (2 n
  • ): Algoritma membutuhkan dua kali jumlah operasi sebelumnya untuk setiap elemen baru ditambahkan. Ketika sebuah algoritma memiliki kompleksitas ini, masalah kecil mungkin akan terjadi selamanya. Banyak algoritma yang melakukan pencarian menyeluruh memiliki kompleksitas eksponensial. Namun, contoh klasik untuk tingkat kerumitan ini adalah perhitungan angka Fibonacci. Kompleksitas Faktorial O (n!): Mimpi buruk yang nyata karena banyaknya kemungkinan kombinasi antar elemen. Bayangkan saja: Jika input Anda 100 objek dan operasi pada komputer Anda membutuhkan 10
  • -6 detik (kecepatan yang masuk akal untuk setiap komputer, saat ini), Anda memerlukan sekitar 10 140 tahun untuk menyelesaikan tugas dengan sukses (jumlah waktu yang tidak tepat sejak usia alam semesta diperkirakan berusia 10 14 tahun). Masalah kompleksitas faktorial yang terkenal adalah masalah salesman keliling, di mana seorang salesman harus menemukan rute terpendek untuk mengunjungi banyak kota dan kembali ke kota awal.
Bekerja dengan Fungsi Algoritma - dummies

Pilihan Editor

Bertahan dalam Zombie Sieges di Minecraft - dummies

Bertahan dalam Zombie Sieges di Minecraft - dummies

Bermasalah dengan zombie yang menyerang desa Anda pada malam hari di Minecraft? Pelajari bagaimana untuk membela diri, menyembuhkan penduduk desa zombie, dan pulihkan dunia Anda!

Zaman Batu di Minecraft - dummies

Zaman Batu di Minecraft - dummies

Tonggak penting dalam mode Minecraft Survival, dan yang dicapai oleh beberapa pemain di Hari pertama, mencapai Zaman Batu. Setelah Anda membuat pickax kayu dan Anda bisa menemukan gua atau menggali lubang, item dalam tabel berikut tersedia untuk Anda. Sebagian besar bahan berbasis batu lebih padat dari yang lain ...

Zaman Looting di Minecraft - dummies

Zaman Looting di Minecraft - dummies

Anda mencapai Usia Looting di Minecraft di awal permainan - kadang-kadang, bahkan paralel untuk mencapai Era Kayu. Anda mulai dengan membunuh musuh untuk menjarah, dan dengan menggunakan jarahan untuk memperbaiki repertoar kerajinan Anda. Lebih banyak item kemudian tersedia bagi Anda, seperti tercantum dalam tabel. Semua alat meningkatkan jumlah ...

Pilihan Editor

Infografis tepat waktu: Berbagi Breaking News - dummies

Infografis tepat waktu: Berbagi Breaking News - dummies

Walaupun infografik Anda tidak mungkin menjadi satu-satunya sumber berita, Ini bisa membantu pemahaman pembaca akan sebuah acara berita. Misalnya, banyak orang belajar di Twitter pada bulan Oktober, 2011 bahwa pendiri Apple Steve Jobs telah meninggal dunia. Infografis tidak akan menjadi orang pertama yang mendengarnya. Tapi orang-orang ...

Pilihan Editor

GED Contoh Pertanyaan: Pertanyaan Ilmu Fisik - dummies

GED Contoh Pertanyaan: Pertanyaan Ilmu Fisik - dummies

Ketika Anda mencapai bagian Sains GED, Anda akan diharapkan memiliki pengetahuan umum di semua cabang Ilmu Pengetahuan, termasuk Ilmu Fisika. Berikut adalah contoh jenis pertanyaan yang mungkin Anda hadapi pada hari ujian. Kecepatan dan Kecepatan Ada perbedaan antara kecepatan dan kecepatan, meskipun terkadang Anda ...

Latihan GED RLA: Reading Comprehension - dummies

Latihan GED RLA: Reading Comprehension - dummies

Cara terbaik untuk mempersiapkan bagian pemahaman bacaan GED Tes RLA adalah melakukan sebanyak mungkin pertanyaan latihan. Simak sampel untuk melihat apa yang akan Anda hadapi pada hari ujian. Contoh Pertanyaan Pertanyaan 1-6 mengacu pada bagian berikut. Fasilitas untuk Akses ke Perusahaan Kreatif (FACE) Awalnya didirikan ...

GED Penalaran melalui Latihan Keterampilan Membaca Bahasa Seni - dummies

GED Penalaran melalui Latihan Keterampilan Membaca Bahasa Seni - dummies

Komponen bacaan Penalaran meskipun Bahasa Seni Bagian pada GED terdiri dari kutipan dari fiksi dan nonfiksi. Setiap kutipan diikuti oleh beberapa item pilihan berdasarkan bahan bacaan. Untuk pertanyaan di bagian ini, pilih satu jawaban terbaik untuk setiap pertanyaan. Bekerja dengan hati-hati, tapi jangan terlalu banyak menghabiskan waktu ...