1. 程式人生 > >Java中兩種基本的查詢演算法之順序查詢

Java中兩種基本的查詢演算法之順序查詢

Java中兩種基本的查詢演算法:順序查詢和二分查詢(折半查詢)。

第一種查詢演算法:順序查詢:

/**
* 1. 順序查詢
* 基本思想:
* 從陣列的一端向另一端逐個將元素與給定值進行比較,
* 若相等,則查詢成功,給出該元素在表中的位置;
* 若整個表檢測完仍未找到與給定值相等的元素,則查詢失敗,給出失敗資訊。
*
* 時間複雜度:O(n)
*
*/

順序查詢示例程式碼如下:

import java.util.Scanner;

/**
 * 1.順序查詢
 * 基本思想:
 *  從陣列的一端向另一端逐個將元素與給定值進行比較,
 *  若相等,則查詢成功,給出該元素在表中的位置;
 *  若整個表檢測完仍未找到與給定值相等的元素,則查詢失敗,給出失敗資訊。
 * 
 *  時間複雜度:O(n)
 *
 */
public class SequenSearch { public static void main(String[] arg) { int[] arr = {4,6,2,8,1,9,7,3,5}; System.out.println("陣列順序為:"); for(int n : arr){ System.out.print(n+" "); } System.out.println("\n請輸入一個數字:"); @SuppressWarnings("resource"
) Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); //呼叫sequenSearch()方法,將返回值儲存在result中 int result = sequenSearch(arr, num); if(result == -1){ System.out.println("查詢失敗!"); }else{ System.out.println("查詢成功,數字位於陣列第"
+(result+1)+"位!"); } } //順序查詢 private static int sequenSearch(int[] arr, int num) { for(int i=0; i<arr.length; i++) { if(arr[i] == num){//如果資料存在 return i;//返回資料所在的下標,也就是位置 } } return -1;//不存在的話返回-1 } }

結果顯示:

這裡寫圖片描述