C高级DAY4

文章介绍了如何在shell脚本中创建一个获取用户uid和gid的函数,以及冒泡排序、选择排序和快速排序的bash实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、思维导图

二、shell脚本写一个函数获取用户的uid和gid并使用变量接收

#!/bin/bash
get_uid_gid() {
	uid=$(id -u)
	gid=$(id -g)

	echo "uid: $uid"
	echo "gid: $gid"
}

result=$(get_uid_gid)

echo "函数返回结果: $result"

三、整理冒泡排序、选择排序、快速排序的代码

冒泡排序

#!/bin/bash

bubble_sort() {
    array=("$@")
    n=${#array[@]}
    
    for ((i=0; i<n-1; i++)); do
        for ((j=0; j<n-i-1; j++)); do
            if [ ${array[j]} -gt ${array[j+1]} ]; then
                temp=${array[j]}
                array[j]=${array[j+1]}
                array[j+1]=$temp
            fi
        done
    done

    # 输出排序结果
    echo "${array[@]}"
}

arr=($@)
sorted=$(bubble_sort "${arr[@]}")
echo "冒泡排序结果: $sorted"

 选择排序

 

#!/bin/bash

selection_sort() {
    array=("$@")
    n=${#array[@]}
    
    for ((i=0; i<n-1; i++)); do
        min_idx=$i
        for ((j=i+1; j<n; j++)); do
            if [ ${array[j]} -lt ${array[min_idx]} ]; then
                min_idx=$j
            fi
        done
        
        # 交换元素
        temp=${array[i]}
        array[i]=${array[min_idx]}
        array[min_idx]=$temp
    done

    # 输出排序结果
    echo "${array[@]}"
}

arr=($@)
sorted=$(selection_sort "${arr[@]}")
echo "选择排序结果: $sorted"

快速排序

 

#!/bin/bash

quick_sort() {
    array=("$@")
    n=${#array[@]}
    
    if (( n <= 1 )); then
        echo "${array[@]}"
        return
    fi
    
    pivot=${array[0]}
    less=()
    more=()
    
    for ((i=1; i<n; i++)); do
		if (( array[i] <= pivot )); then
            less+=(${array[i]})
        else
            more+=(${array[i]})
        fi
    done
    
    sorted_less=$(quick_sort "${less[@]}")
    sorted_more=$(quick_sort "${more[@]}")
    
    # 输出排序结果
    echo "${sorted_less[@]} $pivot ${sorted_more[@]}"
}

arr=($*)
sorted=$(quick_sort "${arr[@]}")
echo "快速排序结果: $sorted"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值