알고리즘 소결
1. 누적법(데이터 누적 또는 누적)
응용: 구화 구적
누적법으로 1부터 a까지의 계승과 (1!+2!+...+a!)코드는 다음과 같습니다.
#include
int cheng(int i) //
{
if (i==1)
return 1;
return cheng(i-1)*i;
}
int sum(int i) // ( )
{
if(i==1)
return 1;
return cheng(i-1)*i+sum(i-1);
}
void main()
{
int a=0;
scanf("%d",&a);
printf("%d",sum(a));
}
2. 감시치법: 여러 원소 중에서 왼쪽에서 오른쪽으로 이동하는 과정에서 보초병을 통해 현재 최치를 가리킨다(매번 비교할 때마다 비교적 큰 값을 보초병에게 부여하고 반복이 완성될 때 보초병이 최대치이다)
应用:求最值
通过监哨值法求最大值代码如下:
#include
void main()
{
int listen,num,i=2;
scanf("%d",&listen); //
while(i<=10)
{
scanf("%d",&num);
if(listen
3. 거품 정렬 순서:
그것은 정렬할 수열을 반복해서 방문하여 한 번에 두 요소를 비교하고, 만약 그들의 순서가 틀리면 그들을 교환할 것이다.수열을 방문하는 작업은 더 이상 교환이 필요하지 않을 때까지 반복적으로 진행되는 것이다. 즉, 이 수열은 이미 정렬이 끝났다는 것이다.이 알고리즘의 이름은 큰 원소가 교환을 통해 천천히 수열의 맨 위로 뜨기 때문에'거품 정렬'이라고 불린다.
거품 정렬 알고리즘의 원리는 다음과 같다.
비교적 인접한 요소.만약 첫 번째가 두 번째보다 크다면, 그들 둘을 교환할 것이다..
모든 인접 요소에 대해 같은 작업을 하고 첫 번째 쌍에서 마지막 쌍으로 시작합니다.이 점에서 마지막 원소는 가장 큰 수일 것이다..
모든 요소에 대해 위의 절차를 반복하고 마지막을 제외하고..
한 쌍의 숫자가 비교할 필요가 없을 때까지 점점 적어지는 원소에 대해 위의 절차를 반복한다
하나의 그룹을 거품으로 정렬하여 작은 배열에서 큰 배열로 코드를 다음과 같이 한다.
#include
void main()
{
int buf[10]={15,10,2,-9,3,8,14,6,5,7};
int i=0,j=0,x;
int temp;
for(i=0;i<10;i++) //
{
// 0-1 1-2 2-3 3-4 8-9
for(j=0;j<10-i-1;j++) // i ,
{
if(buf[j]
삽입법
매번 탁자 위에서 카드를 뽑아서 손에 넣은 순서가 정해진 카드에 끼워 넣는 셈이다.
앞의 숫자는 이미 정렬되었기 때문에 매번 판단이 끝난 후에 앞의 비교적 큰 숫자를 한 자리 뒤로 이동하면 된다. 최종적으로 빈 자리에temp를 보충하면 된다
구현 코드는 다음과 같습니다.
#include
void main()
{
int buf[]={1,6,4,7,3,9};
//
int i=1,j,temp;//i : i :
for(i=1;i<6;i++)
{
j=i;
temp=buf[i];
if(buf[j]0&&temp
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.