Chatbox

Các bạn vui lòng dùng từ ngữ lịch sự và có văn hóa,sử dụng Tiếng Việt có dấu chuẩn. Chúc các bạn vui vẻ!
14/02/2013 20:02 # 1
docvominh
Cấp độ: 2 - Kỹ năng: 1

Kinh nghiệm: 6/20 (30%)
Kĩ năng: 1/10 (10%)
Ngày gia nhập: 04/10/2011
Bài gởi: 16
Được cảm ơn: 1
giúp mình giải đáp đoạn code.


trong bài thuật toán quick sort trên java, mình gặp 1 đoạn code, ai giúp mình giải thích ý nghĩa với .
nó đây :

 quick_srt(array, lo == low ? lo+1 : lo, n); ( đây là đoạn gọi đệ quy )

 

nguyên văn :

public static void quick_srt(int array[],int low, int n){

    int lo = low;
    int hi = n;
    if (lo >= n) {
        return;
    }
    int mid = array[(lo + hi) / 2];
    while (lo < hi) {
        while (lo<hi && array[lo] < mid) lo++;
        while (lo<hi && array[hi] > mid)  hi--;
        if (lo < hi) {
            int T = array[lo];
            array[lo] = array[hi];
            array[hi] = T;
        }
    }
    if (hi < lo) {
            int T = hi;
            hi = lo;
            lo = T;
    }
    quick_srt(array, low, lo);
    quick_srt(array, lo == low ? lo+1 : lo, n);     // <<< chỗ này này !
  }
}



 
14/02/2013 23:02 # 2
vnttqb
Cấp độ: 13 - Kỹ năng: 8

Kinh nghiệm: 5/130 (4%)
Kĩ năng: 39/80 (49%)
Ngày gia nhập: 21/03/2011
Bài gởi: 785
Được cảm ơn: 319
Phản hồi: giúp mình giải đáp đoạn code.


 quick_srt(array, lo == low ? lo+1 : lo, n);

Có nghĩa là . nếu lo == low thì đối số truyền vào quick_srt là lo+1 ngược lại là l0

Giống như câu điều kiện  dk? a: b; nếu dk đúng thì trả về kq là a ngược lại là b
=> Trước khi gọi hàm thì nó kiểm tra điều kiện rồi mới truyền đối số vào



======================================================================================================

Cuộc đời là một dòng sông. Ai không bơi thì chết. 
 

Name: Tien (Tory) TRAN
Email: TranTien29@gmail.com


 
Các thành viên đã Thank vnttqb vì Bài viết có ích:
Copyright© Đại học Duy Tân 2010 - 2024