分治法:
先把陣列一a[i]為界,分成兩部分,左邊比a[i]小,右邊比a[i]大。
1:左面陣列去乙個數、右面陣列取乙個數,a[i]三個數判斷;
2:左面取兩個數與a[i]判斷;
3:右面取兩個數與a[i]判斷;
**:#include#include#includeusing namespace std;
void swap(int *a,int *b)
int valid(int a,int b,int c)
int partion(int * a,int p,int q)//快排
swap(&a[i+1],&a[q]);
return i+1;
}int subtri(int * a,int p,int q)
{ int mid;
if(q-p+1 < 3)return 0;
mid = partion(a,p,q);
if(subtri(a,p,mid-1)||subtri(a,mid+1,q))return 1;
else
{int l,r;
for(l = p;l
從二維陣列中查詢乙個數,判斷是否存在
乙個二維陣列,沒每一行都按照從左到右遞增的順序排序,每乙個列都按照從上到下遞增的排序,設計乙個函式,輸入乙個這樣的陣列和乙個整數,判斷陣列中是否含有該整數。例如下面陣列,查詢數字7返回true,查詢5,返回false 1,2,8,9 2,4,9,12 4,7,10,13 6,8,11,15 一種思路...
任意輸入三個數判斷其是否為三角形
include void compare float a,float b,float c void sort float a,float b,float c int main void return0 void compare float a,float b,float c void sort fl...
二維陣列中查詢某個數是否存在
問題描述 在乙個二維陣列中,每一行按照從左道右遞增的順序排列,每一列按照從上到下遞增的順序排列。給定乙個數值,判斷二維陣列中是否存在這個數字。思路分析 首先選取陣列中右上角的數字,如果該數字等於要查詢的數字,查詢過程結束 如果小於要查詢的數字,那麼去除這個數字所在的列 如果大於要查詢的數字,那麼去除...