我正在上linux實用技術這門課,然後最後的實驗是
我選擇了冒泡選擇插入這三種相對簡單的。
各種演算法的具體描述可以參考一下
ok接下來的各個**
氣泡排序:
#!/bin/bash
echo "input a number list"
read -a arr
for (( i=0;i
dofor ((j=0;j
doif [[ $ -gt $ ]];
then
tmp=$
arr[j]=$
arr[j+1]=$tmp
fidone
done
echo "end:"
echo $
選擇排序:
#!/bin/bash
echo "input a number list"
read -a arr
for (( i=0;i
dom=i
for ((j=i+1;j
doif [[ $ -lt $ ]];
then
m=jfi
done
tmp=$
arr[i]=$
arr[m]=$tmp
done
echo "end:"
echo $
插入排序:(這個我網上找了好久,結果出來的都是shell排序= =)
#!/bin/bash
echo "input a number list"
read -a arr
for (( i=1;i
dofor (( j=i;j>0;--j ))
doif (( $
then
temp=$
arr[j]=$
arr[j-1]=$temp
else
break
fidone
done
echo "end:"
echo $
應該沒錯的吧,如果有錯希望大家指出 插入 冒泡 選擇與shell排序
插入 冒泡與選擇這三個排序演算法的平均時間複雜度都是o n 2 插入和冒泡的最優時間複雜度都是o n 選擇排序的最優時間複雜度還是o n 2 三者最差的時間複雜度都是o n 2 其中插入與氣泡排序是穩定的,選擇排序是不穩定的。排序演算法穩定,是指能保證排序前2個相等的數在序列的前後位置順序和排序後他...
C程式設計 排序(冒泡 選擇 插入) 冒泡
include intmain int n sizeof a sizeof int for int i 0 i n 1 i for i 0 i printf n a i return0 若檔案的初始狀態是正序的,一趟掃瞄即可完成排序。所需的關鍵字比較次數c和記錄移動次數m均達到最小值 cmin n ...
冒泡 選擇 插入
先講一下異或交換兩個值 如a 1101 b 1011 則異或運算有 1101 1011 0110 該值包括的是 只有a擁有的 只有b擁有的 也就是中間的兩個的11,左邊乙個是只有a擁有的,右邊乙個是b擁有的 a a b 只有a擁有的 只有b擁有的 b a b 只有a擁有的 只有b擁有的 只有b擁有的...