日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux中shell编写数组排序,linux bash shell实现对数组快速排序(升序)

發布時間:2023/12/10 linux 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux中shell编写数组排序,linux bash shell实现对数组快速排序(升序) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2011年12月19日,參考網上用C語言實現的快速排序,經過一番修改后,用shell(我的測試環境為centos5的bash-v3.x)實現了相同功能:對數組進行升序排序。

注:如果代碼框里的代碼復制出來后顯示異常,就麻煩下載附件chris.zip(已將chris-qsort.sh和chris-algo.sh壓縮打包為chris.zip)

1. shell函數形式(已將其放在附件里,文件名為:chris-qsort.sh。由于沒法上傳.sh腳本,故壓縮打包了一下,文件名為:chris.zip):

Quick_Sort(){

#SortNumeric-arrayinASCorder,?using?normal?Quick-Sort?algorithm.

#C?code:?http://www.cnblogs.com/skyaspnet/archive/2010/11/03/1868298.html

#Usage:?Quick_Sort?lowest_index?highest_index?array_name

#e.g.,??Quick_Sort?0?9?array1

#e.g.,??Quick_Sort?1?3?array2

localarray=${3}

evallocalpivot=\$\{${array}[${1}]\}

locallow=${1}

localhigh=${2}

[?${1}?-ge?${2}?]?&&return

while?[?${low}?-lt?${high}?];?do

while?[?${low}?-lt?${high}?-a?${pivot}?-le?$(eval?echo?\$\{${array}[${high}]\})?];?do

let?high--

done

if?[?${pivot}?-gt?$(eval?echo?\$\{${array}[${high}]\})?];then

eval?${array}[${low}]=\$\{${array}[${high}]\}

eval?${array}[${high}]=${pivot}

let?low++

fi

while?[?${low}?-lt?${high}?-a?${pivot}?-ge?$(eval?echo?\$\{${array}[${low}]\})?];?do

let?low++

done

if?[?${pivot}?-lt?$(eval?echo?\$\{${array}[${low}]\})?];then

eval?${array}[${high}]=\$\{${array}[${low}]\}

eval?${array}[${low}]=${pivot}

let?high--

fi

done

#Executethe?Quick_Sortfunctionrecursively

Quick_Sort?${1}?$[${low}-1]?${array}

Quick_Sort?$[${low}+1]?${2}?${array}

unset?array?pivot?low?high

}

2. shell腳本形式,進行簡單測試(已將其放在附件里,文件名為chris-algo.sh。由于沒法上傳.sh腳本,故壓縮打包了一下,文件名為:chris.zip)。

#!/bin/bash

##################################################

##?Author?????:??Chris

##?CreateDate:??2011-12-19

##?ModifyDate:??2012-05-14

##?Realize?common?algorithms?inbash-v3.x

##?Note:?Every?functionrepresents?an?algorithm.

##################################################

#Normal?Quick-Sort?algorithm

Quick_Sort(){

#Sort?Numeric-arrayinASCorder,?using?normal?Quick-Sort?algorithm.

#C?code:?http://www.cnblogs.com/skyaspnet/archive/2010/11/03/1868298.html

#Usage:?Quick_Sort?lowest_index?highest_index?array_name

#e.g.,??Quick_Sort?0?9?array1

#e.g.,??Quick_Sort?1?3?array2

localarray=${3}

eval?localpivot=\$\{${array}[${1}]\}

locallow=${1}

localhigh=${2}

[?${1}?-ge?${2}?]?&&?return

while?[?${low}?-lt?${high}?];?do

while?[?${low}?-lt?${high}?-a?${pivot}?-le?$(eval?echo?\$\{${array}[${high}]\})?];?do

let?high--

done

if?[?${pivot}?-gt?$(eval?echo?\$\{${array}[${high}]\})?];?then

eval?${array}[${low}]=\$\{${array}[${high}]\}

eval?${array}[${high}]=${pivot}

let?low++

fi

while?[?${low}?-lt?${high}?-a?${pivot}?-ge?$(eval?echo?\$\{${array}[${low}]\})?];?do

let?low++

done

if?[?${pivot}?-lt?$(eval?echo?\$\{${array}[${low}]\})?];?then

eval?${array}[${high}]=\$\{${array}[${low}]\}

eval?${array}[${low}]=${pivot}

let?high--

fi

done

#Executethe?Quick_Sortfunctionrecursively

Quick_Sort?${1}?$[${low}-1]?${array}

Quick_Sort?$[${low}+1]?${2}?${array}

unset?array?pivot?low?high

}

main(){

read-ep"Input?Numeric:?"numeric

size=$(echo?${numeric}?|?awk'{print?NF}')

#Define?array

t_array=(${numeric})

#Outputthe?original?array

for((i=0;i

printf?"%d?"${t_array[${i}]}

done

printf?"\n"

#Using?Quick_Sort?functiontosort?t_array

size_1=$[${size}?-?1]

Quick_Sort?0?${size_1}?t_array

#Outputthe?sorted?array

for((i=0;i

printf?"%d?"${t_array[${i}]}

done

printf?"\n"

}

main

輸出如下:

[root@localhost algorithms]# ./chris-algo.sh

49 38 65 97 76 13 27 9 2 1

1 2 9 13 27 38 49 65 76 97

分享!

總結

以上是生活随笔為你收集整理的linux中shell编写数组排序,linux bash shell实现对数组快速排序(升序)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产妻精品一区二区在线 | www久久久天天com | 欧美偷拍另类 | 黄色一级视频在线观看 | a级黄色录像 | 波多野结衣电车痴汉 | 夜夜操狠狠操 | 国产精品一区一区三区 | 亚洲精品乱码久久久久久9色 | 在线无遮挡 | 国产日韩av一区二区 | 免费男女乱淫真视频免费播放 | 国产亚洲精品一区二区三区 | 欧美日韩中文在线 | 国产婷婷色一区二区三区 | 最近中文字幕在线视频 | 成人黄色片网站 | 在线观看成人黄色 | 日韩一区二区三区网站 | 一区二区三区小说 | 波多野结衣黄色网址 | 无码人妻丰满熟妇区五十路百度 | 黄色一级大片免费版 | 国产精品天天操 | yy色综合 | 爱爱视频在线播放 | 日韩av线观看| 国产人成视频在线观看 | 女优色图| 一区二区三区精品国产 | 国产98在线 | 91在线精品秘密一区二区 | 中文字幕91爱爱 | 国产一区二区三区四区在线观看 | 黄视频网站免费看 | 五十路av | 国产精品啪啪啪视频 | 国产毛片精品国产一区二区三区 | 男女三级视频 | 国产精品久久久久久久久动漫 | 欧美激情 一区 | 老熟妇高潮一区二区三区 | 成人性做爰aaa片免费看不忠 | 欧美撒尿777hd撒尿 | 狠狠操网站 | 大学生一级片 | 婷婷在线网 | 欧美乱妇18p | 91麻豆蜜桃一区二区三区 | 未满十八18禁止免费无码网站 | 日韩成人在线免费视频 | 男生操女生逼逼 | 啪啪精品 | 绯色av一区二区三区高清 | 国产欧美日韩高清 | 在线亚洲天堂 | 韩国三级hd中文字幕有哪些 | 日韩v| 诱惑の诱惑筱田优在线播放 | 久久久免费看片 | 大地资源影视在线播放观看高清视频 | 蜜桃成人无码区免费视频网站 | 色天天 | 国产欧美精品一区二区三区 | 日韩在线视频观看免费 | 黄色av观看 | 无码精品黑人一区二区三区 | 国产视频综合 | 噜噜视频 | 日韩第一页 | 久久久久久中文字幕 | 欧美日韩一区三区 | 国产成人精品视频一区二区 | 亚洲欧美另类日韩 | 午夜777 | 视频免费1区二区三区 | 中国a级黄色片 | 一久久久 | 久久艹精品视频 | 欧美精品乱码久久久久久按摩 | 少妇高潮喷水在线观看 | 欧洲久久精品 | 男人插女人视频网站 | 鲁片一区二区三区 | 国产第9页 | 日本韩国毛片 | 久久综合桃花网 | 久久夜色精品 | 高清欧美精品xxxxx在线看 | 少妇一级淫片免费看 | 黄色一级视频免费看 | 国产精品国产三级国产aⅴ中文 | jlzzjlzz国产精品久久 | 美女脱光衣服让男人捅 | 久久久久亚洲AV成人网人人小说 | 进去里视频在线观看 | 国内自拍偷拍视频 | 微拍福利一区二区 | 亚洲天堂一区二区三区四区 |