Advertisement
Shailrshah

Bubble, Insertion and Selection Sorts

Nov 2nd, 2014
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.82 KB | None | 0 0
  1. #! /bin/bash
  2.  
  3. exchange(){
  4.         temp=${a[$1]}
  5.         a[$1]=${a[$2]}
  6.         a[$2]=$temp
  7. }
  8.  
  9. echo -n "Enter an array: "
  10. read -a a
  11. n=${#a[@]}
  12. echo $n
  13.  
  14. echo -n "B-Bubble Sort I-Insertion Sort S-Selection Sort: "
  15. read ch
  16.  
  17. case $ch in
  18.  
  19.     B):
  20.         for(( i=0; i<$n; i++ )){
  21.             for(( j=$i+1; j<$n; j++ )){
  22.                 if [ ${a[$i]} -gt ${a[$j]} ]; then
  23.                     exchange $i $j
  24.                 fi
  25.             }
  26.         };;
  27.  
  28.     I):
  29.         for(( i=1; i<$n; i++ )){
  30.             value=${a[$i]}
  31.             j=$i
  32.             while(( j>0 && ${a[$j-1]}>value ))
  33.             do
  34.                 a[$j]=${a[$j-1]}
  35.                 j=$j-1
  36.             done
  37.             a[$j]=$value
  38.         };;
  39.     S):
  40.         for(( i=0; i<$n-1; i++ )){
  41.             min=$i
  42.             for(( j=$i+1; j<$n; j++ )){
  43.                 if [ ${a[$j]} -lt ${a[$min]} ]; then
  44.                     min=$j;
  45.                 fi
  46.             }
  47.             if [ $min -ne $i ]; then
  48.                 exchange $min $i
  49.             fi
  50.         };;
  51.  
  52.     *): echo "Invalid option."
  53. esac
  54. echo ${a[*]}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement