Eray's Humble Software Blog
https://eraykalkan.com/
Recent content on Eray's Humble Software BlogHugo -- gohugo.ioen-usThu, 06 Aug 2020 00:00:00 +0000Algorithm of The Day: Quick Sort
https://eraykalkan.com/algorithms/quicksort/
Thu, 06 Aug 2020 00:00:00 +0000https://eraykalkan.com/algorithms/quicksort/Quick sort also follows the divide-and-conquer approach like merge sort.
It divides the problem into sub-problems and combines the result.
Typical flow for quicksort algorithm is like:
1) Select a value as pivot. 2) Find elements that are greater than pivot and find elements less than pivot. - In this case, we can say we have two arrays. One is to find elements greater than, and the other is to find elements greater less pivot.Data Structure: Queue
https://eraykalkan.com/datastructures/queue/
Thu, 06 Aug 2020 00:00:00 +0000https://eraykalkan.com/datastructures/queue/Queue is a datastructure that follows FIFO policy. FIFO: First in First Out
Inserting an element to a queue is called ENQUEUE and deleting an element is called DEQUEUE.
Use Cases: - Serve requests on a single shared resource like a printer etc. - Call center phone systems.Data Structure: Stack
https://eraykalkan.com/datastructures/stack/
Thu, 06 Aug 2020 00:00:00 +0000https://eraykalkan.com/datastructures/stack/Stack is a data structure that follows LIFO policy. LIFO: Last in First Out
Usually, inserting an element to stack is called pushing, and deleting an element is called popping. That’s why we see in most programming languages they have PUSH and POP methods/functions.
When we call PUSH function, a new element is inserted to the stack. When POP is called, the element at the top of the stack which is the freshest element of the stack is popped out.Algorithm of The Day: Merge Sort
https://eraykalkan.com/algorithms/merge-sort/
Wed, 05 Aug 2020 00:00:00 +0000https://eraykalkan.com/algorithms/merge-sort/There are some approaches when designing an algorithm. One of them is the Divide-And-Conquer approach.
Most of the algorithms are recursive. They call themselves until the problem is solved, and most of the time they do it by dividing the problem into sub-problems. Then these sub-problems are solved by the algorithm, finally those results are combined and the main problem is solved.
This is why it is called divide and conquer.Algorithm of The Day: Insertion Sort
https://eraykalkan.com/algorithms/insertion-sort/
Tue, 04 Aug 2020 00:00:00 +0000https://eraykalkan.com/algorithms/insertion-sort/Insertion sort is an efficient algorithm for sorting a small number of elements. It is basically sorting a random array of numbers in an ascending or descending order depending on our choice of design.
The most popular example of this could be sorting a deck of cards. Imagine having a deck in your right hand in a random order. You will need to check the cards one by one and compare with each other until it is sorted.Do you need Algorithms?
https://eraykalkan.com/algorithms/do-you-need-algorithms/
Tue, 04 Aug 2020 00:00:00 +0000https://eraykalkan.com/algorithms/do-you-need-algorithms/Algorithm knowledge and being able to immediately guess which algorithm to follow in a specific case is a gift that the main difference between truly skilled programmers / designers and novice/amateur ones.
One of the most discussed and frequently asked questions that arouse from absolute beginners about programming is that if they need algorithms and mathematics knowledge in order to be a successful programmer. You can for sure develop something that does the desired job without going too deep into algorithms, however if you have solid background in algorithms you can do much more in an efficient way where the efficiency is the key since the very beginning of the computer science.Why do we need algorithms?
https://eraykalkan.com/algorithms/why-we-need-algorithms/
Tue, 04 Aug 2020 00:00:00 +0000https://eraykalkan.com/algorithms/why-we-need-algorithms/If we had computers with infinite processing power (CPU), infinite memory (RAM), we would still need algorithms but any correct method would work. Some would still want to follow good software engineering practices while some would pick whichever method they find suitable and go on. However, that’s not the case in today’s world at least where computers have infinite processing power and memory, so we are still bound to some limitations.What is an Algorithm?
https://eraykalkan.com/algorithms/what-is-an-algorithm/
Mon, 03 Aug 2020 00:00:00 +0000https://eraykalkan.com/algorithms/what-is-an-algorithm/In an informal way: It is a procedure or set of procedures, working in such a way that you need to specify what are you trying to achieve step-by-step. You will need to be explaining like you are telling a story to a 5 year old :)
In formal way: Well-defined computational procedure which expectes a value / set of values as input. Then, produces a result using those input. It needs to be sequential.Java Memory Management and Garbage Collection in Java
https://eraykalkan.com/java/garbage-collector/
Sat, 04 Apr 2020 00:00:00 +0000https://eraykalkan.com/java/garbage-collector/Data allocation and de-allocation in various programming languages are among the most challenging and important tasks of course. In most of older programming languages like C and C++, you will need to handle those recycled data by yourself. However, Java has a built-in actor that does the job for you (at least in most cases). In other words, you don’t need to worry about destroying objects in memory.
Think Garbage Collector in Java as a daemon thread.JDK, JVM ,JRE - The Three Musketeers
https://eraykalkan.com/java/jdk-jvm-jre/
Wed, 16 Oct 2019 00:00:00 +0000https://eraykalkan.com/java/jdk-jvm-jre/You may or may not have heard of those abbreviations and they are often neglected by most developers. You can tell yourself what you are supposed to do with that information or what is going to change on your life if you know what they do or how they work.
However, knowing those things or at least having a little bit idea of why they are here can be life saving in some situations.About
https://eraykalkan.com/about/
Sun, 13 Jan 2019 00:00:00 +0000https://eraykalkan.com/about/Hi! I’m Eray. A passionate learner of new things, Senior Java Developer with OCAJP8 Cert. , Computer Engineer, Car Enthusiast, Hardcore Gamer, Synthwave & Retrowave Fan.