|
|
| Ai biết làm bài "heap sort" theo kiểu HĐTượng không nè? | |
| | Thu 22 Oct 2009, 8:58 pm | | osmnt Thống Sói | -Sinh nhật : 24/05/1985
-Đến từ : Bình Thuận -Sở thích : mày và mò, tìm và tòi -Điểm tích cực : 1183 -Cảm ơn : 17
|
| | Tiêu đề: Ai biết làm bài "heap sort" theo kiểu HĐTượng không nè? | |
| | | | | | Nguồn : http://sptinbt.forum-viet.net/t173-topic Tiêu Đề : Ai biết làm bài "heap sort" theo kiểu HĐTượng không nè?
Nếu thấy bài viết này hay thì xin click vào nút [Cảm ơn] bên dưới để thay cho lời cảm ơn nhé --------------------------------------------------
Mình làm thử nhưng không được, các đồng chí nào đã làm được rồi thì post lên cho anh em tham khảo. Dưới đây là một đoạn bài mình làm thử các đồng chí copy rồi sửa lại giúp. Mục CẤU TRÚC DỮ LIỆU chưa có bài nào mà môn này cũng quan trọng các đồng chí nên siêng năng hơn nữa nhé - Code:
-
class heap_sort { public: void HeapSort(int a[],int n); void swap(int&a,int&b); void CreatHeap(int a[],int n); void Shift(int a[], int left,int right); heap_sort(); ~heap_sort();
private: }; heap_sort::heap_sort() { a[0]=0; } heap_sort::~heap_sort() { } void heap_sort::Shift(int a[], int left, int right) { int x,curr, joint; curr=left; joint=2*curr+1; x=a[curr]; while (joint<=right) { if (joint<right) if(a[joint]<a[joint+1]) joint=joint+1; if(a[joint]<x) break; a[curr]=a[joint]; joint=2*curr+1; } a[curr]=x; } void heap_sort::CreatHeap(int a[], int n) { int left; for(left=(n-1)/2;left>=0;left--) swap(a,a[n-1]); } void heap_sort::swap(int &a, int &b) { int tmp=a; a=b; b=tmp; }
void heap_sort::HeapSort(int a[], int n) { int right; heap_sort::CreatHeap(a,n); right=n-1; while (right>0) { swap(a[0],a[right]); right--; Shift(a,0,right); } } --------------------------------------------------
| | | | |
Copy đường link gửi cho bạn bè ! |
|
|
Fri 23 Oct 2009, 8:53 am | | langtu_ Thượng Tướng | -Sinh nhật : 01/01/1988
-Điểm tích cực : 100 -Cảm ơn : 9
|
| | Tiêu đề: Re: Ai biết làm bài "heap sort" theo kiểu HĐTượng không nè? | |
| |
Copy đường link gửi cho bạn bè ! |
|
|
Trang 1 trong tổng số 1 trang | | * Viết tiếng Việt có dấu, là tôn trọng người đọc. * Chia sẻ bài sưu tầm có ghi rõ nguồn, là tôn trọng người viết. * Thực hiện những điều trên, là tôn trọng chính mình.-Nếu chèn smilies có vấn đề thì bấm A/a trên phải khung viết bài
| Permissions in this forum: | Bạn không có quyền trả lời bài viết
| |
| |
|
|