Moi người cho mình hỏi về thuật toán sắp xếp theo hạng với.
Mình học môn tính toán song song và phân tán, có nhận đề tài này.
Mình có tìm thuật toán sắp xếp theo hạng nhưng không có kết quả.
Ace nào trong diễn đàn có biết về thuật toán này hoặc có tài liệu về môn này thì cho mình xin với ạ.
xin cám ơn.
Hỏi về thuật toán sắp xếp theo hạng
Nghe thuật toán sắp xếp theo hạng lạ quá nhỉ. Bạn có ví dụ nào không?
Hoặc là chụp chương đầu của giáo trình để mọi người xem, chứ từ thuở cha sinh mẹ đẻ đến giờ mình chưa nghe cụm từ này
Chắc là hậu quả của việc dịch sang tiếng Việt những từ không nên dịch
Thuật toán sắp xếp song song (thuật toán sắp xếp theo hạng) chính là nó đấy ạ.
có bác nào biết hay nghe qua không ạ.
em tìm mãi mà không thấy
Không ạ. em mới nhận đề tài. Môn này cũng không có tài liệu luôn :v
chắc em phải lên hỏi lại giáo viên thôi. huhu
ui, em cũng đang định post lên
thôi tặng bạn ấy keyword google :3
Tks các bác ạ.
Chắc em vẫn phải lên hỏi lại cho chắc chắn thôi.
Hỏi giáo viên tên đề tài bằng tiếng Anh nha.
Tiếng Việt nhiều tên dịch sang nghe khủng lắm, giống như đề tài cho nhóm nghiên cứu, giống như làm màu
Tks các bác. em tìm được rồi ạ
Pilot hay còn gọi là sắp xếp theo cách đánh số
sắp xếp theo phần tử hoa tiêu
sắp xếp theo hạng
Tiếng việt phong phú quá
Rank sort nếu muốn dịch ra thì cũng phải đi kèm từ tiếng Anh để tra cứu chứ
Với lại từ dịch ra chưa được chuẩn hóa nên rất khó chịu (thread là gì? concurrency?)
bạn ơi cho mình xin slide đc ko? bọn mình cũng đang làm đề tài này hjx hjx.gấp quá.
Mình cũng Haui nhé bạn :))
Mình chỉ đưa code tuần tự cho bạn dễ hình dung thuật toán thôi.
Còn lại thì bạn tự làm đê
int* rank_sort(int list[],int n)
{
int i,j;
int rank_list[50] = {0};
int sort_list[50] = {0};
for(i=0; i<n; i++)
{
for(j=0; j<i; j++)
{
if(list[i] >= list[j])
rank_list[i]++;
else
rank_list[j]++;
}
}
printf("\nHang cua moi phan tu mang\n");
printf("\n\tPhan tu\t\tHang\n");
for(i=0; i<n; i++)
printf("\t%d\t\t%d\n",list[i],rank_list[i]+1);
for(i=0; i<n; i++)
sort_list[rank_list[i]] = list[i];
printf("\nSap xep mang tang dan theo hang\n\t");
for(i=0; i<n; i++)
printf("%d ",sort_list[i]);
printf("\n");
return sort_list;
}
Các anh chị cho e hỏi cái sắp xếp theo hạng nếu có 2 giá trị trùng nhau thì sắp xếp kiểu gì ạ?
Chỗ dựng bảng bạn thêm đk vào chỗ if(a[i] == a[j])
.
note
Thật sự cái này chỉ để đọc cho biết vì đã O(n^2) time mà còn O(n) mem
if A[i] < A[j] rank++ else if A[i]==A[j] && i<j rank++
Mình làm thế.
Cũng mong có cách tối ưu hơn để tham khảo.
Bạn nghiên cứu code #16 xem
Cho e hỏi là có 2 vòng for mà của e chỉ song song được vòng for ngoài thôi . e dùng openmp