Sorting
08.45Selama tugas 1 SDA banyak banget yang nunjukin, diskusi, dan ngasih ide untuk sorting, dan cukup banyak ide gila yang ditemukan. Contohnya adalah Bogosort.
public Object[] bogosort (Object[] unsortedArray) { //jika array sudah tersortir, kembalikan array if (isArraySorted(unsortedArray)) return unsortedArray; //jika belum, permutasi array. Siapa tau jadi permutasi yang tersortir else return bogosort (permutateArray(unsortedArray)); }
Walaupun bodoh, tapi bestcase-nya O(n)! (atau O(1), tergantung algo ngecek arraynya udah ke-sort atau belum). Trus Fariskhi memikirkan sorting dengan jumlah data terserah tapi bestcasenya O(n) dan worstcase-nya O(n log n), trus dia namain Fariskhi Sort
Bagaimana cara kerja Fariskhi sort? ini dia :
public Object[] fariskhisort (Object[] unsortedArray) { //jika array sudah tersortir, kembalikan array if (isArraySorted(unsortedArray)) return unsortedArray; //jike belum, lakukan merge sort else return mergeSort(unsortedArray); }
Trus temen gua, Murda, ngasih tau Quantum Sort, sorting dengan menggunakan teori Multiverse
public Object[] quantumsort (Object[] unsortedArray) { //jika array sudah tersortir, kembalikan array if (isArraySorted(unsortedArray)) return unsortedArray; //jika belum, pindah dimensi, cari dimensi dimana array tersebut tersortir else { changeUniverse(); return quantumsort (unsortedArray); } }
Awesome enough? Dengan timing yang tepat saat gua mikirin Trie, xkcd.com ngeluarin komik tentang sorting
klik untuk memperbesar :3 |
dan Teori Stack Sort yang juga dari xkcd.
public Object[] stacksort (Object[] unsortedArray) { //StackSort connects to StackOverflow, searches for 'sort a list', //and downloads and runs code snippets until the list is sorted. SearchResult search = doSearchOnStackOverflowDotCom("Sort a List"); CodeSnippet[] sortingAlgoritmArray = search.downloadAllCodeSnippets(); for (int i = 0; i < sortingAlgoritmArray.length; i++) { unsortedArray = runCodeSnippet(sortingAlgoritmArray[i], unsortedArray); if (isArraySorted(unsortedArray)) return unsortedArray; } System.out.println("StackOverflow tells this list can't be sorted"); return unsortedArray; }
Gua? gua berhasil menemukan implementasi wacana sort
public void wacanasort (Object[] unsortedArray) { //wacana-nya listnya bakal di sort return; }
Cukup gila memang semua ide-ide tersebut, hahaha..
Eh, gua lagi UTS nih minggu ini, doain nilai gua bagus yak! :3
Ganbare!
1 komentar
ada yang lebih jago, sei...
BalasHapusBogobogo sort
is an algorithm that was designed not to succeed before the heat death of the universe on any sizable list. It works by implementing the Bogo sort on the first two elements in the list. If they are in order, then it Bogo sorts the first three elements, and so on, increasing by one until the entire list is sorted. Should the list not be in order at any point, the sort starts over with the first two elements.