CodeByAkram: Interview Questions
Showing posts with label Interview Questions. Show all posts
Showing posts with label Interview Questions. Show all posts

What are regular expressions or regex?

What are regular expressions or regex in Java?

Regular Expression CodeByAkram

Regular expressions define a search pattern for strings in Java. The abbreviation for regular expression is called as regex. The search pattern, it can be anything from a simple character or a fixed string or a complex expression and it can contain special characters describing the pattern. The pattern defined by the regex may match one or several times or not at all for a given string.
Regular expressions can be used to search, edit and manipulate text.
The process of analyzing or modifying a text with a regex is called: The regular expression is applied to the text/string. The pattern defined by the regex is applied on the text from left to right. Once a source character has been used in a match, it cannot be reused. For example, the regex aba will match ababababa only two times (aba_aba__).

Regex examples
A simple example for a regular expression is a (literal) string. For example, the Hello World regex matches the "Hello World" string. . (dot) is another example for a regular expression. A dot matches any single character; it would match, for example, "a" or "1".
The following tables lists several regular expressions and describes which pattern they would match.

Table 1. Regex example
Regex
Matches
this is text
Matches exactly "this is text"
this\s+is\s+text
Matches the word "this" followed by one or more whitespace characters followed by the word "is" followed by one or more whitespace characters followed by the word "text".
^\d+(\.\d+)?
^ defines that the patter must start at beginning of a new line. \d+ matches one or several digits. The ? makes the statement in brackets optional. \. matches ".", parentheses are used for grouping. Matches for example "5", "1.5" and "2.21".



How to disable Spring banner

How to disable Spring banner?

spring banner codebyakram
You can disable the spring boot banner by adding the below mentioned code in your main method.
app.setBannerMode(Banner.Mode.OFF);

Just add the above mentioned code in main method and spring banner will be disabled.

What is @SpringBootApplication in Spring Boot

What is @SpringBootApplication in Spring Boot?

"Indicates a configuration class that declares one or more @Bean methods and also triggers auto-configuration and component scanning. This is a convenience annotation that is equivalent to declaring @Configuration, @EnableAutoConfiguration and @ComponentScan."
CodeByAkram SpringBoot

 If you are using spring boot version below 1.2 than you need to add the below annotation in your application.
  1. @Configuration to enable Java-based configuration and mark your class a Configuration class.
  2. @ComponentScan to enable component scanning so that controllers and other components will automatically discovered and registered as bean in Spring's Application Context.
  3. @EnableAutoConfiguration to enable Spring Boot's auto-configuration feature.
But if you using spring boot 1.2 or above version, you just need to add the @SpringBootApplication annotation in your main class and your main class should be in your base package.

@SpringBootApplication = @Configuration + @ComponentScan + @EnableAutoConfiguration



Selection Sort in Java

Selection Sort in Java

The selection sort is the improvement over bubble sort by making only one exchange for every pass through the list.

In this algorithm, find the smallest element from an unsorted list in each iteration and place that element at beginning of the list.
Or find the largest element from an unsorted list in each iteration and place that element at the end of the list.

How Selection Sort Works?

1.     Lets take and list as mentioned below and take the first element as minimum
20
12
10
15
2

2.     Compare first element with the second element is the second element is smaller than first then assign second element to minimum. Compare minimum with the third element and if the third element is smaller than minimum then assign thirst variable to minimum. The process goes on until the last element.

Selection Sort


3.     After each iteration, minimum placed at the beginning of unsorted list by swapping.
4.     For each iteration, indexing start from the first unsorted element. Step 1 and 3 are repeated until all the elements are placed at their correct positions.
5.     And the selection is sort all the elements by using above steps in recursive method.

 // Selection sort in Java
import java.util.Scanner;
class SelectionSort {
  void selectionSort(int array[]) {
    int size = array.length;
    for (int step = 0; step < size - 1; step++) {
      int min_idx = step;
      for (int i = step + 1; i < size; i++) {
        if (array[i] < array[min_idx]) {
          min_idx = i;
        }
      }
      int temp = array[step];
      array[step] = array[min_idx];
      array[min_idx] = temp;
    }
  }
  void printArray(int array[]) {
    int size = array.length;
    for (int i = 0; i < size; ++i)
      System.out.print(array[i] + " ");
    System.out.println();
  }
  public static void main(String args[]) {
    int[] data = { 20, 12, 10, 15, 2 };
    SelectionSort ss = new SelectionSort();
    ss.selectionSort(data);
    System.out.println("Sorted Array in Ascending Order: ");
    ss.printArray(data);
  }
}


Complexity

Now lets talk about the complexity of selection sort.
Complexity = O(n2)

Also, we can analyze the complexity by simply observing the number of loops. There are 2 loops so the complexity is O(n*n) = O(n2). So the complexity of this algorithm is O(n*n) = O(n2 ). This is the worst case complexity.

Where we can use bubble sort?
The selection sort is used when:
1.     small list is to be sorted
2.     cost of swapping does not matter
3.     checking of all the elements is compulsory
4.     cost of writing to a memory matters like in flash memory (number of writes/swaps is O(n) as compared to O(n2) of bubble sort)

Bubble Sort

Bubble Sort

The bubble sort makes multiple passes through a list and sometimes referred to as sinking sort. It is a simple sorting algorithm that compare the adjacent elements and swap their position if they are nor in intended order. Each pass through the list places the next largest value in its proper place. In essence, each item “bubbles” up to the location where it belongs.

So now lets talk about How Bubble sort works?
Lets take an list as shown below

Bubble Sort


As Shown above, Starting from the first element, two adjacent elements are compared. If the former element is greater than the latter one, they are swapped. This process goes on for all consecutive-element pairs until the last unsorted element.

And again it will follow the same recursive method till the complete list is sorted.
class BubbleSort{

  public void bubbleSort(int array[]){

    int size = array.length;

    for (int i = 0; i < size-1; i++){

      for (int j = 0; j < size-i-1; j++){

        if (array[j] > array[j+1]){

          int temp = array[j];

          array[j] = array[j+1];

          array[j+1] = temp;

        }

      }

    }

  }

  Public void printArray(int array[]){

    int size = array.length;

    for(int i=0; i < size; ++i)

      System.out.print(array[i]+" ");

      System.out.println();

  }

  public static void main(String args[]){

  int[] data = {-2, 45, 0, 11, -9};

  BubbleSort bs = new BubbleSort();

  bs.bubbleSort(data);

  System.out.println("Sorted Array in Ascending Order:");

  bs.printArray(data);

  }

}

Complexity
Now lets talk about the complexity of bubble sort.
As Bubble sort is the simplest sorting algorithm and in above java code we have implemented two foor loops, So the complexity of of this algorithm is O(n*n) = O(n2 ). This is the worst case complexity.

Where we can use bubble sort?
1.      Where the complexity of code does not matters
Where a sort code is refer.