# sorting

### linear search

https://en.wikipedia.org/wiki/Linear_search

### binary search

needs sorted value,

time complexity = O(log(n))

The binary search tree and B-tree data structures are based on binary search.

Algorithm:

Given an array of elements with values or records sorted such that , and target value , the following subroutine uses binary search to find the index of in .

1. Set to and to .
2. If , the search terminates as unsuccessful.
3. Set (the position of the middle element) to the floor of , which is the greatest integer less than or equal to .
4. If , set to and go to step 2.
5. If , set to and go to step 2.
6. Now , the search is done; return .

Pseudocode:

function binary_search(A, n, T) is
L := 0
R := n − 1
while L ≤ R do
m := floor((L + R) / 2)
if A[m] < T then
L := m + 1
else if A[m] > T then
R := m − 1
else:
return m
return unsuccessful 


Pseudocode ceil version:

function binary_search_alternative(A, n, T) is
L := 0
R := n − 1
while L != R do
m := ceil((L + R) / 2)
if A[m] > T then
R := m − 1
else:
L := m
if A[L] = T then
return L
return unsuccessful


https://en.wikipedia.org/wiki/Binary_search_algorithm

### selection sort

https://en.wikipedia.org/wiki/Selection_sort
for first step n-1 step
2nd n-2
n   2
total step = n-1 + n-2 + ...1 = (n-1)/2 (n-1+1)/2=n(n-1)/2


### bubble sort

https://en.wikipedia.org/wiki/Bubble_sort
push biggest element to right by comparing two adjacent
on n-1 comparision we get first biggest select sorted

 https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html


### merge sort

sort right half and left half
merge two half by comparing smallest
https://en.wikipedia.org/wiki/Merge_sort

### sxhkd volume andbrightness config for dwm on void

xbps-install  sxhkd ------------ mkdir .config/sxhkd cd .config/sxhkd nano/vim sxhkdrc -------------------------------- XF86AudioRaiseVolume         amixer -c 1 -- sset Master 2db+ XF86AudioLowerVolume         amixer -c 1 -- sset Master 2db- XF86AudioMute         amixer -c 1 -- sset Master toggle alt + shift + Escape         pkill -USR1 -x sxhkd XF86MonBrightnessUp          xbacklight -inc 20 XF86MonBrightnessDown          xbacklight -dec 20 ------------------------------------------------------------- amixer -c card_no -- sset Interface volume run alsamixer to find card no and interface names xbps-install -S git git clone https://git.suckless.org/dwm xbps-install -S base-devel libX11-devel libXft-devel libXinerama-devel  vim config.mk # FREETYPEINC = \${X11INC}/freetype2 #comment for non-bsd make clean install   cp config.def.h config.h vim config.h xbps-install -S font-symbola #for emoji on statusbar support     void audio config xbps-i