930_16

930-2016

记录一下自己做真题的心里过程

2016-17

//真题-2016-17
//将一个数组置换
bool reverse(int a[], int h, int t, int size){
	if(h >= t || t >= m)
		return false;
	
	int i,j, temp, mid = (h+t)/2;
	for(i=h, j=0; i<mid; i++,j++){
		temp = a[i];
		a[i] = a[t-j-1];
		a[t-j-1] = temp;
	}
}

void exchange(int a[], int h, int t, int size){
	reverse(a, 0, h+t-1, size);
//	reverse(a, 0, t-1, size);	
//	reverse(a, t, h+t-1, size);
}
/*
若仅是置换一个数组,那么上述代码够用
但若是要将数组内部进行再次置换,则需要用到注释的两行
*/
//可运行的代码
#include<stdio.h>
#define m 50
int main()
{
	bool reverse(int a[], int h, int t, int size);
	void exchange(int a[], int h, int t, int size);
	
	int n, i, temp, a[m] = {0};
	printf("请输入要插入元素的个数:\n");
	scanf("%d",&n);
	printf("请输入%d个元素:\n",n);
	for(i=0; i<n; i++){
		scanf("%d",&a[i]);
	}
	
	exchange(a,1,n,n);
	 
	printf("逆置后的数组为:\n");
	for(i=0; i<n; i++){
		printf("%d ",a[i]);
	}
	return 0;
} 

bool reverse(int a[], int h, int t, int size){
	if(h >= t || t >= m)
		return false;
	
	int i,j, temp, mid = (h+t)/2;
	for(i=h, j=0; i<mid; i++,j++){
		temp = a[i];
		a[i] = a[t-j-1];
		a[t-j-1] = temp;
	}
}

void exchange(int a[], int h, int t, int size){
	reverse(a, 0, h+t-1, size);
//	reverse(a, 0, t-1, size);
//	reverse(a, t, h+t-1, size);
}

2016-20

//真题-2016-20
//简单选择排序(思想要记住!)

void sort(int a[], int n){
	int i,j,k,t;
	for(i=0; i<n-1; i++){		//用i来代表较小的元素应该放的位置 
		k = i;					//用k来代表较小的元素 
		
		for(j=i+1; j<n; j++)
			if(a[j]<a[k])
				k = j;
				
			t = a[k];
			a[k] = a[i];
			a[i] = t;
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值