2014年12月23日 星期二

[C/C++ 演算法]-資料結構與演算法(文魁):循序搜尋使用範例

[C/C++ 演算法]-資料結構與演算法(文魁)循序搜尋使用範例


 


線上執行結果:http://www.tutorialspoint.com/compile_c_online.php


  


/* =============== Program Description =============== */
/* 程式名稱 : 5_2.cpp */
/* 程式目的 : 循序搜尋使用範例 */
/* 輸 入 : 整數陣列資料,要搜尋的鍵值 */
/* 輸 出 : 整數陣列資料中搜尋鍵值的位置 */
/* =================================================== */
#define n 20

// 宣告標頭檔
#include "stdio.h"


// 宣告函式原型

// 利用傳位址的方式把Array A傳進linear_search函式中
// 利用傳值的方式把整數key傳進linear_search函式中
int linear_search(int *A,int key);

void main(void)
{
int A[n]={1,21,0,47,60,15,84,65,77,88,99,93,8,17,36,5,24,63,72,20};
int key,i,ret;

// 陣列資料的資料
printf(" Array : ");
for(i=0;i<n;i++)
if(i%6==0)
printf("\n A[%2d]=%2d",i,A[i]);
else
printf("A[%2d]=%2d",i,A[i]);
printf("\n");

// 要搜尋的鍵值
key=77;
printf(" Key : %d\n",key);

// 開始搜尋
ret = linear_search(A,key);

// 整數陣列資料中搜尋鍵值的位置
if(ret!=-1)
printf(" Index : %d\n",ret);
else
printf(" Key %d is not found ! \n",key);

getchar();
}

int linear_search(int *A,int key)
{
int i=0;
while(i<=n-1)
if(A[i]==key) return i; /* 搜尋成功 */
else i++;

return -1; /* 搜尋失敗 */
}
















 






沒有留言:

張貼留言