栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Awk实现排序算法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Awk实现排序算法

顾名思义 如同我们打扑克牌一样 按照顺序找到一张不合理的牌插入到合适的位置 直到全部有序。

代码实现如下
假设第一个数字是有序的 我们从第二个数字开始想左边找 找到正确的位置放入即可。

#!/usr/bin/awk -f
# insertion sort
BEGIN{
 print 插入排序 
 print 输入示例 8 1 6 3 5 2 4 7 
 for( i 1; i NF; i ) 
 A[i] $i ; 
 isort(A, NF) 
function show(arr,n, j, i) {
 for( i 1; i n; i )
 printf( %d%s , arr[i], i j ? | : )
 printf( %d%sn , arr[i], i j ? | : )
function nl() {
 printf( ---------------------------------n )
function isort( arr, n, i, j,t) {
 for( i 2; i n; i ) {
 for( j i ; j 1 arr[j-1] arr[j] ; j--){
 # 交换
 t arr[j-1]; arr[j-1] arr[j] ; arr[j] t
 show(arr, n, i)
 nl()

执行脚本命令

$ chomd x ./sorti.awk
$ ./sorti.awk

输入测试用例

8 1 6 3 5 2 4 7

我们看到输出结果(输出内容包括每次拿到新数字后排序结果,竖线前数是有序的)

1 8|6 3 5 2 4 7
1 6 8|3 5 2 4 7
1 3 6 8|5 2 4 7
1 3 5 6 8|2 4 7
1 2 3 5 6 8|4 7
1 2 3 4 5 6 8|7
1 2 3 4 5 6 7 8|
---------------------------------
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267620.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号