VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test
Java Cơ Bản Các Khái Niệm Java OOPs Java String

Bài Tập Java

Danh sách bài tập java

Lời Giải Bài Tập Java Cơ Bản 1

Giải phương trình bậc 2 Tính giai thừa Chuyển đổi hệ cơ số Dãy so Fibonacci Tìm UCLN và BCNN Liệt kê tất cả số nguyên tố nhỏ hơn n Liệt kê n số nguyên tố đầu tiên Liệt kê tất cả số nguyên tố có 5 chữ số Phân tích số nguyên Tính tổng của các chữ số của một số nguyên Số thuận nghịch Fibonacci nhỏ hơn n là nguyên tố Viết chương trình java tính hàm SLOPE trong excel

Lời Giải Bài Tập Java Cơ Bản 2

Đếm số từ của một sâu ký tự Số lần xuất hiện các từ trong một sâu Sâu s1 chứa sâu s2?

Lời Giải Bài Tập Mảng (Array) Trong Java

Liệt kê các phần tử xuất hiện trong mảng đúng 1 lần Liệt kê các phần tử xuất hiện trong mảng đúng 2 lần Liệt kê số lần xuất hiện của các phần tử trong một mảng Sắp xếp mảng theo thứ tự tăng dần Sắp xếp mảng theo thứ tự giảm dần Chèn phần tử vào mảng trong java Trộn 2 mảng trong java

Lời Giải Bài Tập Java Nâng Cao

Lời giải bài tập QLSV Bài tập quản lý sinh viên trong java - Tạo giao diện bằng Swing
Xử Lý Ngoại Lệ Các Lớp Lồng Nhau Đa Luồng (Multithreading) Java I/O Lập Trình Mạng Với Java Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Các Tính Năng Mới Trong Java Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Bài tập Java - Sắp xếp nhanh (Quick Sort) trong Java


Bài tập Java - Sắp xếp chèn (Insertion Sort) trong Java
Bài tập Java - Sắp xếp trộn (Merge Sort) trong Java

Nội dung chính

  • Bài tập Java - Sắp xếp nhanh (Quick Sort) trong Java
  • Lời giải

Bài tập Java - Sắp xếp nhanh (Quick Sort) trong Java

Đề bài: Viết chương trình Java sắp xếp một dãy số theo thứ tự tăng dần bằng thuật toán nhanh (Quick Sort).


Lời giải

Giải thuật sắp xếp nhanh (Quick Sort) là một giải thuật hiệu quả cao và dựa trên việc chia mảng dữa liệu thành các mảng nhỏ hơn. Giải thuật sắp xếp nhanh chia mảng thành hai phần bằng cách so sánh từng phần tử của mảng với một phần tử được chọn gọi là phần tử chốt (Pivot): một mảng bao gồm các phần tử nhỏ hơn hoặc bằng phần tử chốt và mảng còn lại bao gồm các phần tử lớn hơn hoặc bằng phần tử chốt.

Dưới đây là chương trình Java để giải bài sắp xếp nhanh (Quick Sort) trong Java:


package vn.viettuts.array;

public class SapXepNhanh {

    // ham de trao doi gia tri
    public void swap(int arr[], int num1, int num2) {
        int temp = arr[num1];
        arr[num1] = arr[num2];
        arr[num2] = temp;
    }

    // ham de chia mang thanh 2 phan, su dung phan tu chot (pivot)
    public int partition(int arr[], int left, int right, int pivot) {
        int leftPointer = left - 1;
        int rightPointer = right;

        while (true) {

            while (arr[++leftPointer] < pivot) {
                // khong lam gi
            }

            while (rightPointer > 0 && arr[--rightPointer] > pivot) {
                // khong lam gi
            }

            if (leftPointer >= rightPointer) {
                break;
            } else {
                System.out.println(" Phan tu duoc trao doi: " + arr[leftPointer] 
                        + ", " + arr[rightPointer]);
                swap(arr, leftPointer, rightPointer);
            }

        }

        System.out.println(" Phan tu chot duoc trao doi: " + arr[leftPointer] 
                + ", " + arr[right]);
        swap(arr, leftPointer, right);
        display(arr);
        return leftPointer;
    }

    // ham sap xep
    public void quickSort(int arr[], int left, int right) {
        if (right - left <= 0) {
            return;
        } else {
            int pivot = arr[right];
            int partitionPoint = partition(arr, left, right, pivot);
            quickSort(arr, left, partitionPoint - 1);
            quickSort(arr, partitionPoint + 1, right);
        }
    }

    public void display(int arr[]) {
        int i;
        System.out.print("[");

        // Duyet qua tat ca phan tu
        for (i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }

        System.out.print("]\n");
    }

    public static void main(String[] args) {
        // khoi tao mang arr
        int arr[] = { 6, 7, 0, 2, 8, 1, 3, 9, 4, 5 };

        SapXepNhanh sapXepNhanh = new SapXepNhanh();
        System.out.println("Mang du lieu dau vao: ");
        sapXepNhanh.display(arr);
        System.out.println("-----------------------------");
        sapXepNhanh.quickSort(arr, 0, arr.length - 1);
        System.out.println("-----------------------------");
        System.out.println("\nMang sau khi da sap xep: ");
        sapXepNhanh.display(arr);
    }
}

Javahạy chương trình Java trên cho kết quả như sau:

Sắp xếp nhanh (Quick Sort) trong Java
Bài tập Java - Sắp xếp chèn (Insertion Sort) trong Java
Bài tập Java - Sắp xếp trộn (Merge Sort) trong Java

Recent Updates

Xuất dữ liệu ra màn hình console trong JavaCài đặt môi trường JavaJava Swing - Bài tập quản lý sinh viên trong javaLinkedList trong javaArrayList trong javaBài tập java có lời giảiSử dụng Javascript trong HTMLToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8Bài tập Java - Sắp xếp nhanh (Quick Sort) trong JavaBài tập Java - Sắp xếp chèn (Insertion Sort) trong JavaBài tập Java - Sắp xếp nổi bọt (Bubble Sort) trong JavaSắp Tết 2026 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2026?

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml