## Basic Algorithms Questions For Freshers

These questions are suited for freshers as well. Ive compiled this list from research and from several credible sources for interviews for software developers. You can find the answers to these questions at this link.

## Explain What Is Merge Sort And How It Is Useful

A merge sort is nothing but a process where the data is divided and sorted to reach the end goal. Within this process, the adjacent elements are merged and sorted to create bigger elements. These sorted elements are gathered again and made the even bigger list. This process is continuous and repetitive until and unless they have nailed it down to a single sorted list.

## Tips For Cracking The Google Software Engineer Interview

Before going in, ensure that you keep the following in mind and put your best efforts into clearing the Google software engineer interview:

These tips will always come in handy â whether youâre appearing for the Google software engineer intern interview or youâre an experienced professional. You can learn more here.

If you want some more help, check out these articles:

**Also Check: What To Include In An Interview Thank You Note **

## How Do You Search For A Target Key In A Linked List

To find the target key in a linked list, you have to apply sequential search. Each node is traversed and compared with the target key, and if it is different, then it follows the link to the next node. This traversal continues until either the target key is found or if the last node is reached.

These interview questions will also help in your viva. Our team of experts has compiled a list of the most common HR round interview questions and answers that interviewers might ask you during your Data Structure job interview.

## Data Structures And Algorithm Interview Questions For Java Programmers

**Question 1: How to find the middle element of the linked list in one pass?**find the middle element of the linked list in a single pass**Question 2: How to find if a linked list has a loop?**linked list with cycles**Question 3: How to find the third element from the end in a linked list in one pass?****Algorithms and Data Structures – Part 1 and 2** courses**Question 4: In an integer array, there is 1 to 100 number, out of one is duplicate, how to find?***find a duplicate number in the array***Question 5: How to reverse String in Java?**3 ways to reverse String in Javarecursion in Java**Question 6: Write a Java program to sort an array using the Bubble Sort algorithm?**How to sort an array using Bubble Sort in Java**Question 7: What is the difference between Stack and Queue data structure?**stack vs queue**Question 8: How do you find duplicates in an array if there is more than one duplicate? **Hashtable or HashMapHashMap**Question 9: What is the difference between the Singly Linked List and Doubly Linked List data structure?****Grokking the Coding Interview: Patterns for Coding Questions** course**Question 10: Write a Java program to print the Fibonacci series?**find the nth Fibonacci number in Java**Question 11: Write a Java program to check if a number is a palindrome or not? **Java program to check if the number is palindrome or not**Question 12: What is a binary search tree? **in orderpreorderpostorder **Question 13: How to reverse a linked list using recursion and iteration? **solution **P. S. **

**Read Also: How To Write A Rejection Email After Interview **

## How Is A Variable Stored In Memory When Using Data Structures

A variable is stored based on the amount of memory that is needed. First, the required quantity of memory is assigned, and later, it is stored based on the data structure being used. Using concepts such as dynamic allocation ensures high efficiency and that the storage units can be supplied based on the requirements in real time.

Next up on this compilation of top Data Structures interview questions, we can check out the questions categorised as intermediate.

## Explain A Little Bit About The Dynamic Data Structure

The nature of the dynamic data structure is different compared to the standard data structures, the word dynamic data structures means that the data structure is flexible in nature. As per the need, the data structure can be expanded and contracted. Thus it helps the users to manipulate the data without worrying too much about the data structure flexibility.

**Read Also: How To Have A Good Job Interview **

## Find If Doubly Linked

**Problem Statement**

Create the method isPalindrome that takes a doubly linked list and returns if the list is a palindrome .

It will return true if the linked list is a palindrome, or false if its not.

**Solution and Explanation**

//Node inner class for DLL public class Node { if return true newNode.nextNode = this.headNode //Linking newNode to head's nextNode newNode.prevNode = null //if empty then simply return if ) //data is at head so delete from head deleteAtHead //traverse the list searching for the data to delete while { //node to delete is found if ) {

We start by taking pointers to headNode and tailNode .

Next, we check for a corner-case, when the linked list is empty, an empty linked-list is a palindrome so we return true .

Then, we simply traverse the linked list from both ends simultaneously and see if the traversals result in the same sequence of values .

If that is not the case, the linked list is not a palindrome , otherwise, it is.

## Question: How To Unscramble A String In Java

package codespaghetti.com import java.util.HashSet import java.util.Set public class GoogleInterviewQuestion //Generates permutations of string and returns a string if it is found in dictionary or return ""public static String wordExists}else}}return "" }//return sentence if can be formed with the given string or return ""public static String makeSentenceelse}}}return "" }public static void main }

**Also Check: How To Prepare For A Server Interview **

## Write A Function To Sort A Linked List Of 0s 1s And 2s

**Input:**0-> 1-> 0-> 2-> 1-> 0-> 2-> 1**Output:**0-> 0-> 0-> 1-> 1-> 1-> 2-> 2**Explanation**: All 0s will come first then 1s and then 2s. This can be done in O time by counting the occurrences of all three and rearranging them in the linked list.

//structure of the linked liststruct Node //function take the head of the linked list as a parametervoid sortList //iterating over count of 0s and filling the linked list while //iterating over count of 1s and filling the linked list while //iterating over count of 2s and filling the linked list while }}

**Time Complexity**: O

## Are You Ready For Your Data Science Or Programming Interview Make Sure You Nail It By Practicing With These Great Review Questions

There are a lot of computer science graduates and programmers applying for programming, coding, and software development roles at companies like Uber and Netflix big organizations like , Microsoft, and and service-based companies like Infosys or Luxsoft. But many of them have no idea of what kind of programming interview questions to expect when youre applying for a job with these companies.

In this article, Ill share some frequently asked algorithms and data structure interview questions from different interviews for programmers at different levels of experience, from people who have just graduated from college to programmers with one to two years of experience.

Coding interviews are comprised mainly of data structure and algorithm-based questions as well as some of the logical questions such as, ‘How do you swap two integers without using a temporary variable?’

I think its helpful to divide coding interview questions into different topic areas. The topic areas Ive seen most often in interviews are arrays, linked lists, strings, binary trees, as well as questions from algorithms , and thats what you will find in this article.

Its not guaranteed that you will be asked these coding or data structure and algorithmic questions, but they will give you enough of an idea of the kinds of questions you can expect in a real programming job interview.

Once you have gone through these questions, you should feel confident enough to attend any interview.

**Don’t Miss: How To Practice For Coding Interviews **

## What Is Dynamic Memory Management

Dynamic memory management is a technique in which storage units are allocated based on the requirements continuously. Using dynamic memory allocations, individual data structures can be either stored separately or combined to form entities called composites. These composites can be worked on when required.

Career Transition

## Data Structures In Java Part I

**Basic algorithms and data structures: AVL tree, binary search tree, array, linked list, stack, queue and hashmaps****What youll learn**

- grasp the fundamentals of algorithms and data structures
- develop your own algorithms that best fit to the personal need
- detect non-optimal code snippets
- get to know basic complexity related definitions
- get to know linked lists
- get to know arrays

- how to achieve O running time complexity

**Section 5 :**

- binary indexed tree implementation

**Eclipse****lets get started****Who this course is for:**

- This course is meant for everyone from scientists to software developers who want to get closer to algorithmic thinking in the main

- Learn all features of Angular

**Donât Miss: How To Study For A Job Interview**

**Don’t Miss: Cracking The Coding Interview Com **

## Do All Declaration Statements Result In A Fixed Memory Reservation

Except for pointers, all declaration statements result in a fixed memory reservation. Instead of allocating memory for storing data, a pointer declaration results in allocating memory for storing the address of the pointer variable.

For pointers, actual memory allocation for the data happens during runtime.

## Question 2: Find Subarrays With Given Sum In An Array

Given an Array of non negative Integers and a number. You need to print all the starting and ending indices of Subarrays having their sum equal to the given integer.**For example :**

Input-intarr= intnum=9starting index:1,Ending index:2starting index:5,Ending index:5starting index:5,Ending index:6 |

**Solution : **

**Also Check: Best Algorithms Book For Interviews **

## Question 2: Count Number Of Occurrences Of Each Element In A Sorted Array

Given a Sorted Array of integers containing duplicates. Find the frequency of every unique element present in the array.Frequency is defined as the number of occurrence of any element in the array.

**For example :**

intarr= Output:Frequency of1is:3Frequency of3is:2Frequency of4is:1Frequency of5is:2Frequency of6is:2 |

**Solution : **

## What Are Some Key Operations Performed On The Deque Data Structure

Following are the key operations available deque:

*insertFront*: This adds an element to the front of the Deque.*insertLast*: This adds an element to the rear of the Deque.*deleteFront*: This deletes an element from the front of the Deque.*deleteLast*:This deletes an element from the front of the Deque.*getFront*: This gets an element from the front of the Deque.*getRear*: This gets an element from the rear of the Deque.*isEmpty*: This checks whether Deque is empty or not.*isFull*: This checks whether Deque is full or not.

**Also Check: How To Prepare For An Engineering Interview **

## Algorithms Data Structures In Java #1

- grasp the fundamentals of algorithms and data structures
- detect non-optimal code snippets
- learn about arrays and linked lists
- learn about stacks and queues
- learn about binary search trees
- learn about balanced binary search trees such as AVL trees or red-black trees
- learn about priority queues and heaps
- learn about B-trees and external memory
- learn about hashing and hash tables

## Java Data Structures Interview Questions On Trees And Graphs

**You May Like: How To Prepare For First Job Interview **

## What Is A Priority Queue What Are The Applications For Priority Queue

Priority Queue is an abstract data type that is similar to a queue in that each element is assigned a priority value. The order in which elements in a priority queue are served is determined by their priority . If the elements have the same priority, they are served in the order they appear in the queue.

Following are some real-time applications for priority queue:

- Used in graph algorithms like Dijkstra, Prims Minimum spanning tree etc.
- Huffman code for data compression
- Finding Kth Largest/Smallest element

## Data Structures And Algorithms Interview Questions In Java

**What is a Data Structure?**

**How to find middle element of linked list in one pass?**

**How to find if a linked list has a loop?**

**In an integer array, there is 1 to 100 number, out of one is duplicate, how to find?**

**What is Circular Queue? Why should we use it?**

**What is the difference between the Singly Linked List and Doubly Linked List data structure?**

**How to identify the third element from the end in a linked list in one pass?**

**Describe some of the operations that are performed on different Data Structures?**

**What do you understand by Data Structure?**

**What are linear and non-linear types of data Structures? Also, How is an Array different from Linked List?**

**You May Like: What To Say In A Email After An Interview **

## How Does Bubble Sort Work

Bubble sort is one of the most used sorting techniques out there. It is applied to arrays where elements adjacent to each other are compared and values are exchanged based on the order of arrangement. Its called bubble sort because of the concept of exchanging elements like a bubble floating to the top of the water and larger entities sinking down to the bottom end.

## In What Areas Do Data Structures Are Applied

Data structures are essential in almost every aspect where data is involved. In general, algorithms that involve efficient data structure is applied in the following areas: numerical analysis, operating system, A.I., compiler design, database management, graphics, and statistical analysis, to name a few.

**You May Like: How To Answer Popular Interview Questions **

## Define Trie Data Structure And Its Applications

The word “Trie” is an abbreviation for “retrieval.” Trie is a data structure that stores a set of strings as a sorted tree. Each node has the same number of pointers as the number of alphabet characters. It can look up a word in the dictionary by using its prefix. Assuming that all strings are formed from the letters ‘a’ to ‘z’ in the English alphabet, each trie node can have a maximum of 26 points.

Trie is also referred to as the digital tree or the prefix tree. The key to which a node is connected is determined by its position in the Trie. Trie allows us to insert and find strings in O time, where L is the length of a single word. This is clearly faster than BST. Because of how it is implemented, this is also faster than Hashing. There is no need to compute a hash function. There is no need to handle collisions

Another benefit of Trie is that we can easily print all words in alphabetical order, which is not easy with hashing. Trie can also perform prefix search efficiently.

The main disadvantage of tries is that they require a large amount of memory to store the strings. We have an excessive number of node pointers for each node

Following are some real-time applications for Trie data structure:

- Auto-Complete and Search for Search Engines
- Genome Analysis