嵌入式软件笔试常见编程题汇总

本文汇总了嵌入式软件笔试中常见的编程题目,包括快速排序、冒泡排序、简单选择排序、直接插入排序、希尔排序以及基础操作如二分查找、数字反转、字符串处理等。这些题目展示了面试者对基础算法和数据结构的理解能力。

排序算法

快速排序

/* 选择数组的一个数作为基数,一次排序完使得 
 * 基数左边全是小于基数; 基数右边全是于基数*/
void quick_sort(int a[], int start, int end)
{
   
   
	if(start >= end){
   
   
		return ;
	}
	int x = start;
	int y = end;
	int base = a[start];
	
	while(x < y){
   
   
		while(a[y] > base && x < y){
   
   
			y--;
		}
		if(x < y){
   
   
			a[x++] = a[y];
		}
		while(a[x] < base && x < y){
   
   
			x++;
		}
		if(x < y){
   
   
			a[y--] = a[x];
		}
	}
	a[x] = base;
	quick_sort(a, start, x-1);
	quick_sort(a, x+1, end);
}

冒泡排序

void Bubble_sorting(int *a, int len)
{
   
   
    int i = 0,j = 0;
    int temp;
    for(i=0; i<len-1; i++){
   
   
    /* 此层循环选择一个大的数放后面 */ 
        for(j=0; j<len-1-i; j++){
   
   
            if(*(a+j) > *(a+j+1)){
   
   
                temp = *(a+j+1);
                *(a+j+1) = *(a+j);
                *(a+j) = temp;
            }
        }
    }
}

简单选择排序

/* 记下头一个数的下标与数字
 * 再向后面的数组找比它小的数
 * 记下下标与数字,然后换掉  */
void Simple_choice(int a[], int length)
{
   
   
	int i,j
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值