【C高级】Day4 shell脚本 排序

news/2024/12/22 23:35:06/

 

 1. 整理思维导图

 

 2. 写一个函数,获取用户的uid和gid并使用变量接收

#!/bin/bash
function getid()
{uid=`id -u`gid=`id -g`
}getid  
echo "uid=$uid"
echo "gid=$gid"

 

3. 整理冒泡排序、选择排序和快速排序的代码

#include <myhead.h>void Input(int *p,int len)
{for(int i=0;i<len;i++){printf("请输入第%d个元素:",i+1);scanf("%d",p+i);}
}void Output(int *p,int len)
{for(int i=0;i<len;i++){printf("%d\t",*(p+i));}putchar(10);
}//选择排序 
void Seletion_Sort(int *p,int len)
{int min,t;for(int i=0;i<len-1;i++){min=i;for(int j=i+1;j<len;j++){if(*(p+min)>*(p+j)){min=j;}}if(min!=i){t=*(p+min);*(p+min)=*(p+i);*(p+i)=t;}}
}//冒泡排序
void Bubble_Sort(int *p,int len)
{int temp,count;for(int i=0;i<len-1;i++){count=0;for(int j=0;j<len-1-i;j++){if(*(p+j)>*(p+j+1)){temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;count++;}}if(count==0)  break;}
}//快速排序
int one_quick(int arr[],int low,int high)
{int key = arr[low];  //确定分界值while(low<high){while(low<high && key<=arr[high]){high--;}arr[low]=arr[high];  //表示key>arr[high]while(low<high && key>=arr[low]){low++;}arr[high]=arr[low];}arr[low]=key;  //low=highreturn low;
}void quick_sort(int arr[],int low,int high)
{//low>high:表示没有元素//low=high:表示只有一个元素if(low>=high) return;int mid=one_quick(arr,low,high);  //一轮排序quick_sort(arr,low,mid-1);   //递归左边排序quick_sort(arr,mid+1,high);  //递归右边排序
}int main(int argc, const char *argv[])
{	
//	int a[]={66,66,99,88,33,22,44,55};
//	int len=sizeof(arr)/sizeof(arr[0]);int len;printf("请输入元素的个数:");scanf("%d",&len);int a[len];Input(a,len);//  冒泡排序
//	Bubble_Sort(a,len);//  快速排序
//	Seletion_Sort(a,len);	//  快速排序quick_sort(a,0,len-1);Output(a,len);return 0;
}


http://www.ppmy.cn/news/1014540.html

相关文章

Verilog学习记录-自用

always语句块一定条件写完整&#xff0c;否则电平触发&#xff0c;综合生成锁存器 task不可综合&#xff0c;主要用于仿真/验证 大部分都是并行执行的&#xff0c;只有begin end块中阻塞语句是串行 if-else和case的区别 if-else面积小&#xff0c;但时延&#xff08;执…

本地项目如何连接git远程仓库

在本地新建项目后&#xff0c;如何连接git远程仓库呢&#xff1f;步骤如下&#xff1a; 第一步&#xff0c; 首先我们在git上新建仓库&#xff0c;设置模板可勾选Readme文件。&#xff08;readme文件的创建是为了介绍所写代码的一些详细信息,为了之后更好的维护。&#xff09;…

有关OpenBSD, NetBSD, FreeBSD -- 与GPT对话

1 介绍一下 - OpenBSD, NetBSD, FreeBSD 当谈论操作系统时,OpenBSD、NetBSD和FreeBSD都是基于BSD(Berkeley Software Distribution)的操作系统,它们各自是独立开发的,并在BSD许可下发布。这些操作系统有很多共同点,但也有一些差异。以下是对它们的简要介绍: OpenBSD: O…

嵌入式开发学习(STC51-9-led点阵)

内容 点亮一个点&#xff1b; 显示数字&#xff1b; 显示图像&#xff1b; LED点阵简介 LED 点阵是由发光二极管排列组成的显示器件 通常应用较多的是8 * 8点阵&#xff0c;然后使用多个8 * 8点阵可组成不同分辨率的LED点阵显示屏&#xff0c;比如16 * 16点阵可以使用4个8 *…

全景图!最近20年,自然语言处理领域的发展

夕小瑶科技说 原创 作者 | 小戏、Python 最近这几年&#xff0c;大家一起共同经历了 NLP&#xff08;写一下全称&#xff0c;Natural Language Processing&#xff09; 这一领域井喷式的发展&#xff0c;从 Word2Vec 到大量使用 RNN、LSTM&#xff0c;从 seq2seq 再到 Attenti…

基于DETR (DEtection TRansformer)开发构建MSTAR雷达影像目标检测系统

关于DETR相关的实践在之前的文章中很详细地介绍过&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a; 《DETR (DEtection TRansformer)基于自建数据集开发构建目标检测模型超详细教程》 《书接上文——DETR评估可视化》 基于MSTAR雷达影像数据开发构建目标检测系统&am…

更新spring boot jar包中的BOOT-INF/lib目录下的jar包

更新spring-boot jar包中的BOOT-INF/lib目录下的jar包 场景 需要更新lib目录下某个jar包的配置文件 失败的解决方法 用解压软件依次打开spring-boot jar包&#xff08;设为a.jar&#xff09;、BOOT-INF/lib目录下的jar包&#xff08;设为b.jar&#xff09;&#xff0c;然后修改…

LLM - Transformer LLaMA2 结构分析与 LoRA 详解

目录 一.引言 二.图说 LLM 1.Transformer 结构 ◆ Input、Output Embedding ◆ PositionEmbedding ◆ Multi-Head-Attention ◆ ADD & Norm ◆ Feed Forward ◆ Linear & Softmax 2.不同 LLM 结构 ◆ Encoder-Only ◆ Encoder-Decoder ◆ Decoder-Only …