Searching and Sorting
Table of contents
Write a program to search an element in array using linear search.
import java.util.*; public class Main { public static int linearSearch(int arr[], int key){ int n=arr.length; for(int i=0; i<n;i++){ if(arr[i]==key){ return i; } } return -1; } public static void main(String[] args) { int arr[]={5,3,7,1,4,6}; int key=6; System.out.println(linearSearch(arr,key)); } }
Write a program to search an element in sorted array using binary search.
public class Main { public static int binarySearch(int arr[], int key){ int n= arr.length; int start=0; int end= n-1; int mid= (start+end)/2; while(start<=end){ if(arr[mid]==key) { return mid; } else if(arr[mid]<key) { start=mid+1; } else if(arr[mid]>key) { end= mid-1; } } return -1; } public static void main(String[] args) { int arr[]={1,3,4,5,6,7}; int key= 4; System.out.println(binarySearch(arr,key)); } }
Write a program to sort an array using bubble sort.
public class Test { public static void sort(int arr[]) { int n = arr.length; boolean swapped; for (int i = 0; i < n - 1; i++) { swapped=false; for (int j = 0; j < n - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; swapped = true; } } if(swapped==false) break; } } public static void print(int arr[]) { int n=arr.length; for (int i = 0; i < n; i++) { System.out.print(arr[i] + " "); } } public static void main(String[] args) { int arr[] = { 4, 1, 6, 3, 2, 0 }; sort(arr); print(arr); } }
Write a program to sort an array using selection sort.
Idea:- pick the smallest number from unsorted array and place it at the beginning
public class Test { public static void sort(int arr[]) { int n = arr.length; for (int i = 0; i < n - 1; i++) { int min = i; for (int j = i + 1; j < n; j++) { if (arr[min] > arr[j]) { min = j; } } int temp = arr[min]; arr[min] = arr[i]; arr[i] = temp; } } public static void print(int arr[]) { int n = arr.length; for(int i=0; i<n;i++){ System.out.print(arr[i] + " "); } } public static void main(String[] args) { int arr[] = { 6, 5, 7, 3, 1, 9, 8, 0 }; sort(arr); print(arr); } }
Write a program to sort an array using insertion sort.
Idea:- Pick an element (from unsorted part) and place in right position in sorted part
public class InsertionSort { public static void insertionSort(int arr[]) { for (int i = 1; i < arr.length; i++) { int curr = arr[i]; int prev = i - 1; //finding the correct position to insert while (prev >= 0 && arr[prev] > curr) { arr[prev + 1] = arr[prev]; prev--; } //insertion arr[prev + 1] = curr; } } public static void printArray(int arr[]) { for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } public static void main(String[] args) { int arr[] = { 5, 4, 1, 3, 2 }; insertionSort(arr); printArray(arr); } }
Write a program to sort an array using counting sort.
public class Test { public static void Sort(int arr[]) { int n = arr.length; int largest = Integer.MIN_VALUE; for (int i = 0; i < n; i++) { if (arr[i] > largest) { largest = arr[i]; } } int count[] = new int[largest + 1]; int m = count.length; for (int i = 0; i < n; i++) { count[arr[i]]++; } int j = 0; for (int i = 0; i < m; i++) { while (count[i] > 0) { arr[j] = i; j++; count[i]--; } } } public static void print(int arr[]) { int n = arr.length; for (int i = 0; i < n; i++) { System.out.print(arr[i] + " "); } } public static void main(String[] args) { int arr[] = {1,4,1,3,2,4,3,7}; Sort(arr); print(arr); } }
Write a program to sort an array using inbuilt sort method.
import java.util.*; public class Main { public static void printArrayIncreasing(int arr[]){ for(int i=0; i<arr.length;i++){ System.out.print(arr[i]+" "); } } public static void printArrayDecreasing(Integer arr[]){ for(int i=0; i<arr.length;i++){ System.out.print(arr[i]+" "); } } public static void main(String[] args) { int arr[]={32,33,11,3,5,66}; Integer arr1[]={32,33,11,3,5,66}; Arrays.sort(arr); printArrayIncreasing(arr);//Increasing order Arrays.sort(arr1, Collections.reverseOrder());//Decreasing Order System.out.println(); printArrayDecreasing(arr1); } }