Skip to content
This repository has been archived by the owner on May 29, 2024. It is now read-only.

Commit

Permalink
docs(en): add selection sort (#368)
Browse files Browse the repository at this point in the history
Co-authored-by: Ming Tsai <[email protected]>
  • Loading branch information
Sunainacode and ming-tsai authored Jun 23, 2021
1 parent ca33830 commit 5d443c7
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/en/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
## Sorting
- [Bubble Sort](./Sorting/Bubble-Sort.md)
- [Merge Sort](./Sorting/Merge-Sort.md)
- [Selection Sort](./Sorting/Selection-Sort.md)

## Strings
- [Palindrome](./Strings/Palindrome.md)
Expand Down
78 changes: 78 additions & 0 deletions docs/en/Sorting/Selection-Sort.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Selection Sort

1. Time Complexity: O(n^2) due to two nested loops.
2. Space Complexity: O(1)
3. Applications: Useful when memory write is a costly operation.
4. Founder's Name: Oscar Wilde

## Steps

1. Divide the array into two sub-arrays Unsorted and Sorted. Initially, keep the sorted array as empty and unsorted array as the whole array.
2. Remove the minimum element from unsorted array and place it at the end of sorted array.
3. Repeat step 2 until the length of sorted array is equal to initial array and the length of unsorted array becomes 0.
4. Return the sorted array.

## Example

Given array is
**13, 44, 5, 34, 3**

Sorted array is
**3, 5, 13, 34, 44**

**First pass**

Unsorted array: [13, 44, 5, 34, 3]

Minimum in an unsorted array: 3

Sorted array: [3]

**Second pass**

Unsorted array: [13, 44, 5, 34]

Minimum in unsorted array: 5

Sorted array: [3, 5]

**Third pass**

Unsorted array: [13, 44, 34]

Minimum in an unsorted array: 13

Sorted array: [3, 5, 13]

**Fourth pass**

Unsorted array: [44, 34]

Minimum in an unsorted array: 34

Sorted array: [3, 5, 13, 34]

**Fifth pass**

Unsorted array: [44]

Minimum in an unsorted array: 44

Sorted array: [3, 5, 13, 34, 44]



Unsorted array: []

Return the sorted array.

## Implementation

- [Java](../../../algorithms/Java/sorting/selection-sort.java)
- [C++](../../../algorithms/CPlusPlus/Sorting/selection-sort.cpp)
- [JavaScript](../../../algorithms/JavaScript/src/sorting/selection-sort.js)
- [Python](../../../algorithms/Python/sorting/selection_sort.py)

## Video URL

[Selection Sort](https://www.youtube.com/watch?v=GUDLRan2DWM&list=PL2_aWCzGMAwKedT2KfDMB9YA5DgASZb3U&index=2)

0 comments on commit 5d443c7

Please sign in to comment.