1:给定三个整数a,b,c实现函数int median(int a,int b,int c),返回三个数的中位数,不可以使用sort,要求整数操作(比较,位运行,加减乘除)次数尽量少,并分析说明程序最坏和平均情况下使用的操作次数

#include <stdio.h> 
#include <iostream>
using namespace std;

int median(int a,int b,int c)
{
	int abMax = (a+b + abs(a-b))/2;
	int acMax = ((a+c) + abs(a-c))/2;

	if(abMax != acMax)
		return abMax < acMax ? abMax:acMax;
	else
		return ((b+c) +abs(b-c))/2;
}

int main()
{
	int a = 1;
	int b = 2;
	int c = 3;
    cout<<median(a,b,c);
	getchar();
	return 0;
}

2:给定一个key(只含有ASCII编码的小写英文字母),例如kof,然后对input的string(只含有ASCII编码的小写英文字母)利用这个key进行排序,顺序是:先按照key中的字符顺序,然后对key中不包含key的字符,按a-z排序

#include<iostream>
#include<algorithm>
using namespace std;


char *SortKiy(char *str,char *key)
{
	sort(str,str+strlen(str));
	int flag=0;
	for(int i=0;i<(int)strlen(key);i++)
	{
		for(int j=0;j<(int)strlen(str);j++)
		{
			if(key[i]==str[j])
			{
				for(int k=j;k>flag;k--)
				{
					str[k]=str[k-1];
				}
				str[flag]=key[i];
				++flag;
			}
		}
	}
	return str;
}

int main()
{
	char key[4]="kof";
	char str[50]="wqtewqtewkwetiowoweff";
	cout<< SortKiy(str,key)<<endl;
	getchar();
	return 0;
}