首頁 > Java > java教程 > 在Java中對元素進行排序和搜尋

在Java中對元素進行排序和搜尋

WBOY
發布: 2023-08-30 20:09:10
轉載
1237 人瀏覽過

在Java中對元素進行排序和搜尋

排序和搜尋是我們可以對陣列執行的基本操作。排序意味著按升序或降序重新排列給定列表或陣列的元素,而搜尋意味著在列表中尋找元素或其索引。

儘管有多種演算法可用於執行這些操作,但在本文中,我們將使用其中的一些演算法來對 java 中的元素進行排序和搜尋。我們將一一研究它們。

方法一:使用陣列的內建方法

在本節中,我們將討論以下有助於對陣列中的元素進行排序和搜尋的方法。

sort() - 它是 Arrays 類別的靜態方法,按升序對作為參數傳遞的陣列進行排序。

文法

Arrays.sort(nameOfarray);
登入後複製

binarySearch() - 它也是 Arrays 類別的靜態方法。它接受兩個參數,第一個是需要搜尋其元素的數組,第二個是我們需要在該數組中尋找的元素。

它傳回作為參數傳遞的元素的索引號。

文法

Arrays.binarySearch(nameOfarray, element);
登入後複製

範例

import java.util.*;
public class Srch {
   public static void main(String args[]) {
      int araylist[] = {9, 3, 56, 0, -2, -6, 2, 1, 80};
      System.out.print("The given unsorted list: ");
      // for each loop that prints the original array
      for (int print : araylist) {
         System.out.print(print + " ");
      } 
      Arrays.sort(araylist); 
      // method to sort given array
      System.out.println();
      System.out.print("The newly sorted list: ");
      // for each loop that prints the newly sorted array
      for (int print : araylist) {
         System.out.print(print + " ");
      } 
      System.out.println();
      // method to search given element
      int position = Arrays.binarySearch(araylist, 1);
      if(position > -1) {
         System.out.print("Element is available at index: " + position);
      } else {
         System.out.print("Element is not available");
      }
   }
} 
登入後複製

輸出

The given unsorted list: 9 3 56 0 -2 -6 2 1 80 
The newly sorted list: -6 -2 0 1 2 3 9 56 80 
Element is available at index: 3
登入後複製

方法 2:使用我們的自訂邏輯

使用冒泡排序進行排序

演算法

  • 步驟 1 - 首先,宣告並初始化一個名為「araylist」的陣列和一個名為「temp」的整數變數來暫時儲存移位的元素。

  • 步驟 2 - 使用兩個 for 迴圈將第 i 個位置元素與第 i 1 個元素進行比較。在第二個 for 迴圈內建立一個 if 區塊來檢查哪個元素較大,然後我們執行移位操作以升序重新排列這些元素。

  • 第 3 步 - 現在使用每個循環,我們將列印排序後的陣列。

範例

public class Bubble {
   public static void main(String[] args) {
      int araylist[] = {9, 3, 56, 0, 2, 1, 80};
      int temp = 0; 
      System.out.print("The given unsorted list: ");
      for (int print : araylist) {
         System.out.print(print + " ");
      }   
      for (int i = 0; i < araylist.length; i++) {     
         for (int j = i+1; j < araylist.length; j++) {     
            if(araylist[i] > araylist[j]) {    
               temp = araylist[i];    
               araylist[i] = araylist[j];    
               araylist[j] = temp;    
            }     
         }     
      }
      System.out.println();
      System.out.print("The newly sorted list: ");
      for (int print : araylist) {
         System.out.print(print + " ");
      }     
   }     
}
登入後複製

輸出

The given unsorted list: 9 3 56 0 2 1 80 
The newly sorted list: 0 1 2 3 9 56 80 
登入後複製

使用線性搜尋進行搜尋

#演算法

  • 第1 步 - 首先,宣告並初始化一個名為「araylist」的數組和一個名為「searchElem」的整數變量,我們將在該數組中搜尋該變量。我們還需要兩個整數變數“isFound”和“locate”。

  • 第 2 步 - 現在,建立一個 for 循環,該循環將運行到陣列的長度。在此循環中,使用 if 區塊檢查數組中是否存在「searchElem」。如果可用,則將其索引儲存在變數「locate」中,並將變數「isFound」增加到 1。

  • 第 3 步 - 接下來,我們建立一個 if else 區塊來檢查變數「isFound」是否增加到 1。如果它等於 1,則表示找到了元素,我們將返回索引。如果不是,則會執行 else 區塊中的語句。

範例

public class Linear {
   public static void main(String[] args) {
      int araylist[] = {9, 3, 56, 0, 2, 1, 80};
      int searchElem = 0;
      int isFound = 0;
      int locate = 0;
      for(int i = 0; i < araylist.length; i++) {
         if(searchElem == araylist[i]) {
            isFound = 1;
            locate = i;
         } 
      }
      if(isFound == 1) {
         System.out.print("Element is available at index: " + locate);
      } else {
         System.out.print("Element is not available");
      }
   }
}
登入後複製

輸出

Element is available at index: 3
登入後複製

結論

在本文中,我們討論瞭如何對陣列元素進行排序並執行搜尋操作來尋找該陣列的特定元素。我們可以使用名為「sort()」的內建方法或任何排序和搜尋演算法。

以上是在Java中對元素進行排序和搜尋的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板