C言語のアルゴリズム - 補間のコードサーチ方法

コンテンツ補間検索方法 - 多くの場合、宝物を使用し、いくつかのエンジニアリング・プロセスを行うために、コンテンツ、下記の内容は、C言語のアルゴリズムについてです。

する#include <stdio.hに>
する#include <STDLIB.H>
の#include <TIME.H>
の#define MAX 10
の#define SWAP(X、Y){int型のT。T = xで。X = Y。Y = T;}
ボイドクイック(INT []、INT、INT)。
INT intsrch(INT []、INT)。
INTメイン(ボイド)
{
int型の数[MAX] =
{
0
}。
私はint型、見つけます。
srand関数(時間(NULL));
用(i = 0; iは、MAXを<; iは++)
{
数[I] =ランド()100%。
}
クイックソート(数、0、MAX - 1)。
printf( "数列:");
(iは++; iは、MAXを<I = 0)のため
のprintf( "%dの"、番号[I])。
printf( "N输入寻找对象:")。
scanf関数( "%d個"、&見つけます。)。
もし((I = intsrch(数、見つけます。))>


のprintf( "指定されたn個を見つけることができません");
のprintf( "N-");
の戻り0;
}

INT intsrch(INT番号[]、int型見つける。)
{
int型低、中、アッパー。
低= 0;
上側= MAX - 1。
(低<=上側)一方
{
低いです。
もし(ミッド<低||中旬>上)
のリターン- 1。
場合(見つける<数[中間])
上側=ミッド- 1。
それ以外の場合(検索する>番号[中])
が低い=ミッド+ 1;
他の
半ばを返します。
}
リターン- 1。
}

ボイドクイック(INT番号[]、左INT、右INT)
{
intはI、J、K、Sと、
IF(左<右)
{
S =番号[(左+右)/ 2]。
左I = - 1;
J =右+ 1;
一方、(1)
{
ながら(数[++ i]が<S)

- ([J]>の数)、一方

もし(I> = j)を
ブレーク。
SWAP(番号[i]を、番号[J])。
}
}
}





おすすめ

転載: www.cnblogs.com/poplar515/p/11231791.html