Kalau nyari angka terkecil, harus O(log n), berarti pake cara yg sama seperti
binary search

2008/6/6 sm96 <[EMAIL PROTECTED]>:
> O(log N) itu contohnya algoritma binary search, dan quick sort O(n log n)
> O(log N) cenderung lebih cepat dibanding O(n)
>
> 2008/6/6 Felix Halim <[EMAIL PROTECTED]>:
>> Cara itu terkenal dengan nama Dynamic Programming.
>>
>> Kalo tertarik bikin code2 menarik, itu ladangnya ada di Programming Contest.
>>
>> Ini ada problem yang lebih menantang:
>>
>> Diberikan array of integer A (0-based index).
>> Saya ingin mencari bilangan integer terkecil di array A dengan index
>> antara [i, j] (inclusive).
>> Jawabannya harus dalam O ( log N )
>>
>> Jelas kalo looping dari i sampai j itu gak boleh karena itu O ( N ).
>> Ada yang bisa?
>>
>> Kalau tertarik soal2 seperti itu, anda harusnya masuk Programming Contest.
>>
>> FYI, Google suka orang2 yang tahu banyak algorithms ;)
>> Makanya Google ngadain "Google Code Jam" tiap tahun.
>>
>> Milis yang membahas Programming Contest di indo itu:
>>
>> http://groups.yahoo.com/group/indo-algo
>>
>> Tapi sepi nih... disini malah seru :D, bener2 aneh...
>>
>> Felix Halim
>>
>> On Fri, Jun 6, 2008 at 4:57 PM, Jecki Sumargo <[EMAIL PROTECTED]> wrote:
>>> On Fri, Jun 6, 2008 at 3:16 PM, naray citra <[EMAIL PROTECTED]> wrote:
>>>> Gw dapet cuplikan kode menarik neh, untuk share aja, sapa tau ada yang
>>>> butuh
>>>> :D
>>>> sumber : http://linkmingle.com/details/865
>>>>
>>>> There is an array A[N+1] of N integers. You have to compose an array
>>>> Output[N+1] such that Output[i] will be equal to the productof all the
>>>> elements of A[] except A[i].
>>>> Example:
>>>> INPUT:[4, 3, 2, 1, 2]
>>>> OUTPUT:[12, 16, 24, 48, 24]
>>>>
>>>> Solve it without division operator and in O(n) with out using division
>>>>
>>>> import java.util.Arrays;
>>>>
>>>> public class PArray {
>>>>
>>>> public int[] PSub(int[] inp){
>>>> int[] out = new int[inp.length];
>>>> out[0]=1;out[1]=inp[0];
>>>> for (int i = 2; i <inp.length ; i++)
>>>> out[i] = inp[i-1]*out[i-1];
>>>> int P = 1;
>>>> for(int i=inp.length-2;i>=0;i--){
>>>> P*=inp[i+1];
>>>> out[i]=out[i]*P;
>>>> }
>>>> return out;
>>>> }
>>>> public static void main(String[] args) {
>>>> PArray pArray = new PArray();
>>>> int in[] = new int[]{4,3,2,1,2};
>>>> System.out.println("INPUT:"+
>>>> Arrays.toString(in));
>>>> System.out.println("OUTPUT:"+
>>>> Arrays.toString(pArray.PSub(in)));
>>>> }
>>>> }
>>>>
>>>
>>> Wah ini hasilnya O(n) ato ga ya? Dilihat2 sepertinya ini O(n^2)
>>> soalnya ada inner loop yg jumlahnya mendekati n. CMIIW.
>>>
>>> Seru juga. Masih blom ketemu caranya nih :)
>>>
>>> ------------------------------------
>>>
>>> Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke
>>> [EMAIL PROTECTED]
>>>
>>> Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id
>>>
>>> Yahoo! Groups Links
>>>
>>>
>>>
>>>
>> 
>
>
>
> --
> syaiful.mukhlis
> gtalk:[EMAIL PROTECTED]
>



-- 
syaiful.mukhlis
gtalk:[EMAIL PROTECTED]

Kirim email ke