排序+函数的总结捏

顺序排序:最基本的排序方法

int array[]={a,b,c,d,e,f};
for(lh=0;lh<6;lh++)
{
	rh=lh;
	for(k=lh;k<6;++k)
	if(array[k]<array[rh]) rh=k;
	tmp=array[lh];array[lh]=array[rh];
	array[rh]=tmp;//从lh开始找到右侧最小的量来和lh交换
}

二分查找法

int num=0;
	low=0; high=14;
	while(low<=high)
	{
		mid=(low+high)/2;
		printf("查找区间下界,上界,中间点[%d,%d,%d]\n",low,high,mid);
		if(a[mid]==x)
		{
		num=num+1;
		break;}
		else if(a[mid]<x)
		low=mid+1;
		else if(a[mid]>x)
		high=mid-1;
	}
	if(num==1) printf("查找成功,%d的下标:%d\n",x,mid);
	else printf("查找失败\n");

位运算(将自变量%10就得到这一位的数字)

while (x>=a&&x<=b)
	{
		tot=0;
		tmp=x;
		while(tmp>0)
		{
			n=tmp%10;
			tot=tot+n*n*n;
			tmp=tmp/10;
		}
		if(x==tot) 
		{
			array[i]=x;
			i=i+1;
			num=num+1;	
		}
		
		x=x+1;
	}

递归实现的插入排序

#include <iostream>
using namespace std;
void sort(int x[],int n)
{
    if(n==2)
    {
        if(x[0]>x[1])
        {
            int tmp=x[0];
            x[0]=x[1];
            x[1]=tmp;
        }
    }
    else
    {
        sort(x,n-1);
        int i=n-1;
        while((x[i]<x[i-1])&&(i>0))
        {
             int temp=x[i];
             x[i]=x[i-1];
             x[i-1]=temp;
             i=i-1;
        }
    }
}
int main()
{
	int num;
	int ele[1000];
	cin>>num;
	for(int i1=0;i1<num;++i1) cin>>ele[i1];
	if(num==1) cout<<ele[0];
	else if(num!=0&&num!=1)
	{sort(ele,num);
	for(int i1=0;i1<num;++i1) cout<<ele[i1]<<" ";}
	return 0;
}

布尔函数的写法

bool isPrime(int n){
    bool zs;
    int j;
		if (j == n)
		return true ;
		else return false;
	}

静态变量 static

nt fib()
{
	static int b=0;
	static int c=0;
	if(b==0)
	{
		b=1;
		return(1);
	}
	else if(c==0)
	{
		c=1;
		return(1);
	}
	else {
	int tmp1,tmp2;
	tmp1=b;
	tmp2=c;
	b=c;
	c=c+tmp1; 
	return(tmp1+tmp2);
	}
}

调用数组(在main中()里打一个a就行,不用【】)

	调用数组
int GetApple(int a[], int height, int n)
{
	int num;
	num=0;
	for(int i=0;i<n;++i)
	{
		if(a[i]<=height+30) ++num;
	}
	return(num);
}


函数模板(实际上定义了一个自定义变量的数组,大概)

template<class T>
void maxmin(T arr[], int length)
{
    T tmp1=arr[0];
    T tmp2=arr[0];
    int i1;
    for(i1=1;i1<length;++i1)
    {
    	if(arr[i1]>tmp1) tmp1=arr[i1];
    	if(arr[i1]<tmp2) tmp2=arr[i1];
	}
	cout<<tmp1<<" "<<tmp2<<endl;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值