Skip to content

Instantly share code, notes, and snippets.

@lamida
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lamida/31502850fd361a7a378a to your computer and use it in GitHub Desktop.
Save lamida/31502850fd361a7a378a to your computer and use it in GitHub Desktop.
Sorting.java
public class MainSort {
public void print(int[] ar){
for(int a : ar){
System.out.print(a + " ");
}
System.out.println();
}
public void swap(int[] ar, int a, int b){
int temp = ar[b];
ar[b] = ar[a];
ar[a] = temp;
}
public void insertionSort(int[] ar){
for(int i = 1; i < ar.length; i++){
for(int j = i; j > 0; j--){
if(ar[j] < ar[j-1])swap(ar, j, j-1);
}
}
}
public void selectionSort(int[] ar){
for(int i = 0; i < ar.length; i++){
int min = i;
for(int j = i+1; j < ar.length; j++){
if(ar[j] < ar[min])min = j;
}
swap(ar, i, min);
}
}
public void bubleSort(int[] ar){
boolean swapped = true;
for(;swapped;){
swapped = false;
for(int i = 1; i < ar.length; i++){
if(ar[i-1] > ar[i]){
swap(ar, i, i -1);
swapped = true;
}
}
}
}
public void quickSort(int[] ar){
doQuickSort(ar, 0, ar.length-1);
}
private void doQuickSort(int[] ar, int low, int high){
int i = low;
int j = high;
int piv = ar[(low + high)/2];
for(;i <= j;){
for(; ar[i] < piv;){
i++;
}
for(; ar[j] > piv;){
j--;
}
for(;i <= j;){
swap(ar,i,j);
i++;
j--;
}
}
if(low < j){
doQuickSort(ar, low, j);
if(i < high)
doQuickSort(ar, i, high);
}
}
public static void main(String[] args) {
MainSort main = new MainSort();
int[]ar = {5,4,3,2,1};
main.quickSort(ar);
main.print(ar);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment