0Pricing
Java Academy · บทเรียน

การค้นหา ค่าต่ำสุด/สูงสุด และการกลับลำดับ

เขียนการค้นหาแบบเชิงเส้น คำนวณค่าต่ำสุดและสูงสุดในการวนผ่านครั้งเดียว และกลับลำดับอาร์เรย์ภายในอาร์เรย์เดิมหรือด้วยการคัดลอก

การค้นหา ค่าต่ำสุด/สูงสุด และการกลับลำดับ เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน

การค้นหาเชิงเส้น

การค้นหาเชิงเส้นจะตรวจสอบสมาชิกแต่ละตัวตามลำดับจนกว่าจะพบเป้าหมาย

  • คืนค่าดัชนีเมื่อพบ
  • หากไม่พบ ให้คืนค่า -1
  • หยุดก่อนกำหนดด้วย break
public class Main {
  public static void main(String[] args) {
    // Example array
    int[] a = {5, 8, 9, 12, 15};

    int t = 9;      // target value to search
    int idx = -1;   // will stay -1 if not found

    // Loop through each index of the array
    for (int i = 0; i < a.length; i = i + 1) {
      // Check if current element matches the target
      if (a[i] == t) {
        idx = i;   // store the index where found
        break;     // exit loop early (found the target)
      }
    }

    // Print result
    if (idx != -1) {
      System.out.println("Found " + t + " at index " + idx);
    } else {
      System.out.println(t + " not found in array");
    }
  }
}

findIndex()

ห่อหุ้มการค้นหาไว้ในเมธอด:

public class Main {
  public static void main(String[] args) {
    // Example array
    int[] a = {5, 8, 9, 12, 15};

    int t = 9;      // target value we are searching for
    int idx = -1;   // default index (-1 means "not found")

    // Loop through each index of the array
    for (int i = 0; i < a.length; i = i + 1) {
      // Check if current element matches the target
      if (a[i] == t) {
        idx = i;   // store the index where it was found
        break;     // stop searching (first match found)
      }
    }

    // Print result
    if (idx != -1) {
      System.out.println("Found " + t + " at index " + idx);
    } else {
      System.out.println(t + " not found in array");
    }
  }
}

ค่าต่ำสุดและค่าสูงสุดในรอบเดียว

คำนวณค่าต่ำสุดและค่าสูงสุดในการวนผ่านข้อมูลเพียงรอบเดียว:

public class Main {
  public static void main(String[] args) {
    // Example array
    int[] a = {5, 8, 2, 12, 15, 1};

    // Initialize min and max with the first element
    int min = a[0];
    int max = a[0];

    // Loop starts from the second element (index 1)
    for (int i = 1; i < a.length; i = i + 1) {
      // If current element is smaller than current min → update min
      if (a[i] < min) min = a[i];

      // If current element is larger than current max → update max
      if (a[i] > max) max = a[i];
    }

    // Print results
    System.out.println("Minimum value = " + min);
    System.out.println("Maximum value = " + max);
  }
}

กลับลำดับในที่เดิม

กลับลำดับในที่เดิมด้วยการสลับสมาชิกที่ปลายทั้งสองแล้วเลื่อนเข้าหากัน:

public class Main {
  public static void main(String[] args) {
    // Example array
    int[] a = {5, 8, 9, 12, 15};

    int i = 0;              // start pointer (left side)
    int j = a.length - 1;   // end pointer (right side)

    // Keep swapping until the two pointers meet
    while (i < j) {
      // Swap elements at positions i and j
      int tmp = a[i];
      a[i] = a[j];
      a[j] = tmp;

      // Move pointers toward the center
      i = i + 1;
      j = j - 1;
    }

    // Print the reversed array
    System.out.print("Reversed array: ");
    for (int k = 0; k < a.length; k++) {
      System.out.print(a[k] + " ");
    }
  }
}

สำเนาที่กลับลำดับ

สร้างสำเนาที่กลับลำดับ (ต้นฉบับไม่เปลี่ยนแปลง):

public class Main {
  public static void main(String[] args) {
    // Example array
    int[] a = {5, 8, 9, 12, 15};

    // Create a new array b with the same length
    int[] b = new int[a.length];

    // Copy elements from a into b in reverse order
    for (int i = 0; i < a.length; i = i + 1) {
      // (a.length - 1 - i) gives the reversed index
      b[a.length - 1 - i] = a[i];
    }

    // Print original array
    System.out.print("Original array: ");
    for (int i = 0; i < a.length; i++) {
      System.out.print(a[i] + " ");
    }

    System.out.println(); // newline

    // Print reversed array
    System.out.print("Reversed array: ");
    for (int i = 0; i < b.length; i++) {
      System.out.print(b[i] + " ");
    }
  }
}

สาธิตการค้นหา/MinMax/การกลับลำดับ

เรียกใช้: ดูผลการค้นหา ค่า ต่ำสุด/สูงสุด และอาร์เรย์ที่กลับลำดับ

public class Main {
  static int findIndex(int[] a, int t) {
    for (int i = 0; i < a.length; i = i + 1) {
      if (a[i] == t) return i;
    }
    return -1;
  }

  static int min(int[] a) {
    int m = a[0];
    for (int i = 1; i < a.length; i = i + 1) {
      if (a[i] < m) m = a[i];
    }
    return m;
  }

  static int max(int[] a) {
    int m = a[0];
    for (int i = 1; i < a.length; i = i + 1) {
      if (a[i] > m) m = a[i];
    }
    return m;
  }

  static void reverseInPlace(int[] a) {
    int i = 0, j = a.length - 1;
    while (i < j) {
      int tmp = a[i];
      a[i] = a[j];
      a[j] = tmp;
      i = i + 1;
      j = j - 1;
    }
  }

  static int[] reversedCopy(int[] a) {
    int[] b = new int[a.length];
    for (int i = 0; i < a.length; i = i + 1) {
      b[a.length - 1 - i] = a[i];
    }
    return b;
  }

  static String join(int[] a) {
    String s = "";
    for (int i = 0; i < a.length; i = i + 1) {
      s = s + a[i] + (i + 1 < a.length ? " " : "");
    }
    return s;
  }

  public static void main(String[] args) {
    int[] a = {3, 1, 4, 1, 5};

    System.out.println("findIndex 4 -> " + findIndex(a, 4));
    System.out.println("findIndex 9 -> " + findIndex(a, 9));

    System.out.println("min = " + min(a));
    System.out.println("max = " + max(a));

    int[] b = reversedCopy(a);
    System.out.println("reversedCopy: " + join(b));

    reverseInPlace(a);
    System.out.println("reverseInPlace: " + join(a));
  }
}

ตรวจสอบการค้นหาเชิงเส้น

ตรวจสอบสั้น ๆ: ส่วนใดคืนค่าดัชนีของ t ใน a หรือคืนค่า -1

ทบทวนและถัดไป

ทบทวน: คุณใช้การค้นหาเชิงเส้น ค่าต่ำสุด/ค่าสูงสุด และวิธีสองแบบในการกลับลำดับอาร์เรย์

ถัดไป: เรียนรู้การแทรก การลบ (ตามดัชนี) และการเลื่อนสมาชิก

คำถามที่พบบ่อย

บทเรียน “การค้นหา ค่าต่ำสุด/สูงสุด และการกลับลำดับ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การค้นหา ค่าต่ำสุด/สูงสุด และการกลับลำดับ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การค้นหา ค่าต่ำสุด/สูงสุด และการกลับลำดับ”

เขียนการค้นหาแบบเชิงเส้น คำนวณค่าต่ำสุดและสูงสุดในการวนผ่านครั้งเดียว และกลับลำดับอาร์เรย์ภายในอาร์เรย์เดิมหรือด้วยการคัดลอก คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน

บทเรียน “การค้นหา ค่าต่ำสุด/สูงสุด และการกลับลำดับ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐานอาร์เรย์และการวนซ้ำ
  2. การค้นหา ค่าต่ำสุด/สูงสุด และการกลับลำดับ
  3. การแทรก การลบตามดัชนี และการเลื่อน
← กลับไปที่ Java Academy