1. 程式人生 > >ACM第三週

ACM第三週

1.二分法

二分法是利用折半查詢的方法,來進行查詢所需要的資料
比一般順序迴圈方法查詢所需時間較短,可以優化程式執行時間。
不過,二分法只適用於非遞增,或者非遞減的數列
舉個栗子:
已知a[i+1]>=a[i];
求某一值的下標

int l,r,a[100],x;
scanf("%d",&x);
l=0;r=99;
while(l<r)
{
	int mid=(l+r)/2;
	if(a[mid]<x)
		l=mid;
	if(a[mid]>x)
		r=mid;
	if(a[mid]==x)
		printf("%d",mid);
}
return 0;

2.sort

可以將陣列按照從大到小,從小到大的屬性排列
這個函式要定義在C++檔案格式下
需要含有標頭檔案#include才能夠使用
呼叫時

sort(起始地址(指標),終止地址(指標),排序方式(可以省))