Sort with STL (Part 1 : Introduction)

Bagi anda yang sering ‘main-main’ dengan dunia algoritma ataupun coding pasti gak asing lagi dengan yang namanya algoritma sorting. Sorting sesuai dengan artinya yaitu mengurutkan, sering dipakai untuk memecahkan problem dalam pembuatan aplikasi atau dalam sebuah algoritma. Contoh penggunaan algoritma sorting dalam pembuatan aplikasi yakni semisal dalam aplikasi data penilaian siswa, data nilai-nilai siswa diurutkan berdasar nilai secara descending (dari nilai tertinggi ke nilai terendah), atau misal dalam algoritma adalah algoritma Kruskal (algoritma mencari Minimum Spanning Tree… wah apaan tuch ?? ), pada algoritma Kruskal, seluruh edge akan disorting / diurutkan dulu secara ascending, baru kemudian dibentuk Minimum Spanning Treenya. Dan masih banyak lagi penggunaan algoritma sorting ini.

Ada banyak jenis algoritma sorting, yakni : Bubble sort, Merge sort, Heap sort, Radix sort, Quick sort, dan masih banyak lagi. Tiap algoritma memiliki kompleksitas yang berbeda, semisal antara Bubble sort dengan Heap sort. Bubble sort memilki kompleksitas O(N^2), sedangkan Heap sort memiliki kompleksitas O(N log N). Bagi anda programmer C++, jika ingin menggunakan algoritma sorting, anda tidak perlu lagi membuat fungsinya lagi, karena sudah ada STL (Standard Template Library). Sebagai contoh :

terdapat array sbb : int angka[9]={84,23,53,74,55,345,66,35,30};

untuk mengurutkan array angka tersebut, anda tidak perlu cape-cape membuat fungsi sorting seperti ini :

void bubbleSort(int *array,int length)//Bubble sort function
{
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<i;j++)
{
if(array[i]>array[j])
{
int temp=array[i]; //swap
array[i]=array[j];
array[j]=temp;
}

}

}

}

anda hanya perlu menggunakan salah satu library STL yaitu algorithm :

#include<algorithm>

using namespace std;

int main(void){

int angka[9]={84,23,53,74,55,345,66,35,30};

sort(angka,angka+9); // ini fungsi sort dari STL

}

maka secara otomatis akan array angka tsb akan terurut secara ascending. Lantas bagaimana kalo kita ingin mengurutkannya secara descending? begini caranya, anda hanya perlu membuat fungsi / procedure komparasi bertipe boolean, ini contoh codingnya  :

#include<algorithm>

using namespace std;

//inilah fungsi atau procedure komparasi yang saya maksud agar bisa melakukan sorting secara descending

bool compare(const int &x, const int &y) {
return  x > y;  /* tanda > untuk sorting secara descending, sedangkan < untuk sorting secara ascending

*/

}

int main(void){

int angka[9]={84,23,53,74,55,345,66,35,30};

sort(angka,angka+9,compare);// ini fungsi sort dari STL

}

maka, array angka tersebut akan terurut secara descending….

selamat mencoba!!

2 Responses so far »

  1. 1

    […] 2 : Sorting structs / objects) Posted on September 9, 2008 by brainplusplus Pada artikel pertama, kita telah sedikit mengenal cara pemakaian sort di STL, sekarang kita akan belajar bagaimana […]

  2. 2

    Felix J said,

    kalo pake vector, lebih mudah lg🙂

    vector v;

    sort(v.begin(),v.end()); // Ascending😀
    sort(v.rbegin(),v.rend()); // Descending😀

    tentu aja STL container ini lebih enak di pake sih…🙂 tapi ada kala nya juga tetap memakai cara yang diatas🙂 ^^


Comment RSS · TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: