데이터 구 조 를 정리 하 는 노트 (1)
4105 단어 데이터 구조
1. 데이터 구조의 부분 적 인 깔개
int F(int x )
{
If(x==0)
return 0;
else
return 2*F(x-1)
}
C 의 재 귀 함수 가 기준 이 없 으 면 의미 가 없다.예 에서 의 기준 상황 은 F (0) = 0. 재 귀적 인 네 가지 기본 법칙: (1) 기준 상황 (base case) 이다.너 는 반드시 어떤 기준 적 인 상황 이 있어 야 한다. 그것들 은 귀속 하지 않 아 도 해답 을 구 할 수 있다.(2) 끊임없이 추진 (making progress).재 귀적 으로 해결 해 야 할 상황 에 대해 재 귀적 호출 은 반드시 기준 상황 이 발생 하 는 방향 으로 추진 해 야 한다.(3) 설계 법칙.모든 재 귀 호출 이 가능 하 다 고 가정 하 세 요.(4) 합성 효과 법칙 (compound interest rule).한 문제 의 같은 실례 를 풀 때, 서로 다른 귀속 호출 에서 중복 적 인 작업 을 하지 마 십시오.(이해 해 야 할) 수의 재 귀 인쇄 알고리즘 (N > = 0): void PrintOut( unsigned int N )
{
if( N >= 10)
PrintOut( N / 10);
PrintDigit( N % 10);
} ( )
2. 수학 기초 for( i =0;i < N; i++)
{
for(j=0;j
법칙 3: 순서 문: 각 문장의 운행 시간 을 구 하면 된다 (그 중의 최대 치 는 이른바 운행 시간).예: for(i=0;i
법칙 4: IF/ELSE 문장: 프로그램 세 션: if(x)
{
S1
}
else
{
S2
}// if/else S1 S2 。
최대 하위 서열 에 대한 비교적 좋 은 알고리즘: int MaxSubsequenceSum(const int A[],int N)
{
int ThisSum,MaxSum,j;
ThisSum = MaxSum = 0;
for(j = 0;j < N;j++)
{
ThisSum += A[j];
if(ThiaSum > MaxSum)
{
MaxSum = ThisSum;
}
else if(ThisSum < 0)
{
ThisSum = 0;
}
}
return MaxSum;
}// 。
int BinarySearch(const ElementType A[],ElenentType X,int N)
{
int Low,Mid,High;
Low = 0;
High = N-1;
while(Low <= High)
{
Mid = ( Low + High) / 2;
if(A[Mid] < X)
{
Low = Mid + 1;
}
else if(A[Mid] > X)
{
High = Mid + 1;
}
else
return Mid;
}
return -1;
} // O(logN)。
10. 유클리드 알고리즘 (두 정수 의 최대 공약수 계산): Gcd (M, N) [이때 M > = N, M unsigned int Gcd(unsigned int M, unsigned int N)
{
unsigned int Rem;
while( N > 0 )
{
Rem = M % N;
M = N;
N = Rem;
}
return M;
}
11. 정리: M > N 이면 M mod N < M/2.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.