Anda di halaman 1dari 5

SELECTION SORT

 Prinsip Dasar
Selection sort adalah algoritma pengurutan yang sederhana namun sangat efisien
dalam penggunaanya, juga memiliki penulisan code yang simpel. Algoritma ini
menggabungkan metode searching dan sorting. Dalam selection sort ada dua cara
pengurutan yaitu secara ascending (mengurutkan dari kecil ke besar), index nilai
paling kecil disimpan lalu ditukar dengan index pertama. Sedangkan secara
descending (mengurutkan dari besar ke keci), index dengan nilai paling besar
disimpan lalu ditukar.

 Contoh

 Source Code
// Java program for implementation of Selection Sort
class SelectionSort
{
void sort(int arr[])
{
int n = arr.length;

// One by one move boundary of unsorted subarray


for (int i = 0; i < n-1; i++)
{
// Find the minimum element in unsorted array
int min_idx = i;
for (int j = i+1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;

// Swap the found minimum element with the first


// element
int temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
}

// Prints the array


void printArray(int arr[])
{
int n = arr.length;
for (int i=0; i<n; ++i)
System.out.print(arr[i]+" ");
System.out.println();
}

// Driver code to test above


public static void main(String args[])
{
SelectionSort ob = new SelectionSort();
int arr[] = {64,25,12,22,11};
ob.sort(arr);
System.out.println("Sorted array");
ob.printArray(arr);
}
}
/* This code is contributed by Rajat Mishra*/

 Output Program
Sorted array:
11 12 22 25 64
SHELL SORT

 Prinsip Dasar
Metode ini mengurutkan data dengan cara membandingkan suatu data dengan data
lain yang memiliki jarak tertentu – sehingga membentuk sebuah sub-list-, kemudian
dilakukan penukaran bila diperlukan. Jarak yang dipakai didasarkan pada increment
value atau sequence number k. Setiap sub-list berisi setiap elemen ke-k dari kumpulan
elemen yang asli.

 Contoh
 Source Code
// Java implementation of ShellSort
class ShellSort
{
/* An utility function to print array of size n*/
static void printArray(int arr[])
{
int n = arr.length;
for (int i=0; i<n; ++i)
System.out.print(arr[i] + " ");
System.out.println();
}

/* function to sort arr using shellSort */


int sort(int arr[])
{
int n = arr.length;

// Start with a big gap, then reduce the gap


for (int gap = n/2; gap > 0; gap /= 2)
{
// Do a gapped insertion sort for this gap size.
// The first gap elements a[0..gap-1] are already
// in gapped order keep adding one more element
// until the entire array is gap sorted
for (int i = gap; i < n; i += 1)
{
// add a[i] to the elements that have been gap
// sorted save a[i] in temp and make a hole at
// position i
int temp = arr[i];

// shift earlier gap-sorted elements up until


// the correct location for a[i] is found
int j;
for (j = i; j >= gap && arr[j - gap] > temp; j -= gap)
arr[j] = arr[j - gap];

// put temp (the original a[i]) in its correct


// location
arr[j] = temp;
}
}
return 0;
}
// Driver method
public static void main(String args[])
{
int arr[] = {12, 34, 54, 2, 3};
System.out.println("Array before sorting");
printArray(arr);

ShellSort ob = new ShellSort();


ob.sort(arr);

System.out.println("Array after sorting");


printArray(arr);
}
}
/*This code is contributed by Rajat Mishra */

 Output Program
Array before sorting:
12 34 54 2 3
Array after sorting:
2 3 12 34 54

Anda mungkin juga menyukai