Thuật toán sắp xếp Heap Sort - Radix sort couting sort

Leave a Comment

Code C/C++: Thuật toán sắp xếp vun đống (Heap Sort)

Radix sort click

Couting sort click

Shell Sort click

Ý tưởng thuật toán:
Ta xem danh sách n phần tử a0, a1, …,an-1  là cây nhị phân
Cây nhị phân này được xác định như sau: tại nút thứ i tương ứng với chỉ số thứ i của mảng có con trái là nút 2*(i+1)-1 và con phải 2*(i+1) nếu 2*(i+1)-1 và 2*(i+1) nhỏ hơn n.


Thuật toán được mô tả như sau:
- Xây dựng Heap sao cho với mọi nút cha đều có giá trị lớn hơn nút con. Khi đó nút gốc là nút có giá trị lớn nhất.
- Hoán vị nút gốc với nút thứ n  –1 và xây dựng lại Heap mới với n –2 nút và tiếp tục hoán vị nút gốc với nút lá cuối của cây mới sau n –2 bước ta sẽ thu được danh sách được sắp xếp theo thứ tự.
Ví dụ: xét danh sách trước khi sắp xếp

Cài đặt thuật toán:

#include<math.h>
#include<iostream>
#include<conio.h>
#define max 100
using namespace std;
//Nhập mảng
void NhapMang(int A[],int n){
for(int i=0; i<n;  i++) {
cout<<"nhap Phan tu thu A["<<i<<"] =";
cin>>A[i];
}
}
//Xuất mảng
void XuatMang(int A[],int n){
cout<<endl;
for(int i=0; i<n;  i++)
cout<<A[i]<<"\t";
//Hoán vị 2 phần tử
void Swap(int &a,int &b){
int temp = a;
a = b;
b =  temp;
}
//Hoán vị nút cha thứ i phải lớn hơn nút con
void Heapify(int A[],int n, int i) {
int Left =  2*(i+1)-1;
int Right = 2*(i+1);
int Largest;
if(Left<n && A[Left]>A[i])
Largest = Left;
else
Largest = i;
if(Right<n && A[Right]>A[Largest]) 
Largest = Right;
if(i!=Largest) {
Swap(A[i],A[Largest]);
Heapify(A,n,Largest);
}
}
//Xây dựng Heap sao cho mọi nút cha luôn lớn hơn nút con trên cây
void BuildHeap(int A[], int n) {
for(int i = n/2-1; i>=0; i--)
Heapify(A,n,i);
}
void HeapSort(int A[], int n) {
BuildHeap(A,n);
for(int i = n-1; i>0; i--){
Swap(A[0],A[i]);
Heapify(A,i,0);
}
}
//Chương trình chính
int main(){
int A[max], n;
cout<<"Nhap so phan tu:"; cin>>n;
NhapMang(A,n);
cout<<"\nMang vua nhap la:";
XuatMang(A,n);
cout<<"\nSap xep theo Heap Sort:";
HeapSort(A,n);
XuatMang(A,n);
getch();
return 0;
}
Kết quả chạy chương trình:
nguồn: internet
Xem Tiếp

Phím Tắt Trong Eclipse

Leave a Comment

Phím Tắt Trong Eclipse hay

Ctrl + space: Code hinting
Ctrl + Shift + F Format code
Ctrl+shift+o : tự động bổ sung thư viện thừa thiếu
Ctrl+/ Thêm hoặc xóa comment ở dòng hoặc những dòng đc chọn Dạng //
Ctrl + Shift + / hay \ : Thêm hoặc xóa comment ở dòng hoặc những dòng đc chọn Dạng /* */
F11 Debug
Ctrl + F11 Run
Ctrl + Shift + L : Danh sách hotkey
Ctrl + O Hiển thị và nhảy tới các thuộc tính, phương thức trong class hiện tại
Ctrl + M Đưa cửa sổ với file mà bạn đang làm việc về dạng maximum và ngược lại, nó đang ở dạng maximum thì tổ hợp phím này sẽ đưa nó về dạng un-maximum
Ctrl + L Đưa con trở đến 1 dòng nào đó, rất hữu ích với 1 file dài
Ctrl + Q Đưa con trỏ đến vị trí mà bạn vừa sửa.
Ctrl + D Xóa dòng hiện tại.
Alt + LeftArrow/ RightArrow Di chuyển con trỏ đến các vị trí mà bạn vừa sửa.
Ctrl + E Mở danh sách các file đang mở, cho phép tìm kiếm, và goto đến 1 file nào đó
Ctrl + H Open search dialog.
Alt + Up/Down Move dòng hiện tại lên hoặc xuống.
Ctrl+Shift+Enter Chèn thêm 1 dòng ở trên dòng hiện tại.
Ctrl+F6 Di chuyển nhanh đến 1 file trong danh sách các file đang mở.
Ctrl+Up/Down Cuộn lên/xuống mà k0 làm thay đổi vị trí con trỏ.
Ctrl + Backspace Xóa 1 từ ngay phía trước con trỏ.
F3 Xem nội dung của hàm đang được chọn (nếu hàm này ở file khác thì tự động mở file đó ra)
Ctrl + Shift + R Mở nhanh 1 file (Hiện ra bảng và ta nhập vào tên file cần mở, có thể sử dụng wildcard)
Ctrl + Shift + X CHUYỂN ĐOẠN ĐƯỢC CHỌN SANG CHỮ HOA
Ctrl + Shift + Y Chuyển đoạn được chọn sang chữ thường
Ctrl + Alt + Down Copy 1 dòng vào bên dưới dòng đang đứng
Ctrl + Alt + Up Copy 1 dòng vào bên trên dòng đang đứng
===============================================

Hiển thị tiếng việt trong Eclipse (cm thôi)

Trên thanh tab bar Eclipse chọn

Window -> Preferences -> General -> workspace

Trong phần workspace phần Text Fied endcoding chọn Other -> utf-8


Xem Tiếp

Thiết lập IP tĩnh cho máy tính Windows XP, 7, 8, 8.1

Leave a Comment

Thiết lập IP tĩnh cho máy tính Windows XP, 7, 8, 8.1

Khi sử dụng mạng trong một hệ thống nhiều máy, ví dụ như các máy trong gia đình, khu trọ hay công ty thì việc thiết lập địa chỉ IP tĩnh sẽ hiệu quả hơn là sử dụng IP động DHCP vì IP động khi dùng đông người rất hay bị trùng IP nhau. Khi đó dẫn đến mạng hiện dấu chấm than Limited – Mình đã nói trong bài viết Mạng bị chấm than và cách khắc phục
Bài viết này sẽ hướng dẫn cách thiết lập địa chỉ IP tĩnh cho máy tính Windows XP, Vista, Windows 7, Windows 8 và Windows 8.1.
Nếu bạn có một mạng gia đình gồm máy tính và các thiết bị dùng mạng khác, sẽ hiệu quả hơn trong việc quản lý, cũng như hạn chế lỗi trùng địa chỉ IP. Còn khi sử dụng địa chỉ IP động DHCP (Dynamic Host Configuration Protocol), mỗi máy tính sẽ yêu cầu và được gán một địa chỉ mỗi khi nó khởi động. Khi bạn phải xử lý sự cố về kết nối mạng, nó sẽ khó khăn hơn để tìm ra máy bị lỗi.
Ngoài ra: Sử dụng IP tĩnh ngăn chặn các cuộc xung đột địa chỉ IP giữa các thiết bị và cho phép bạn quản lý chúng dễ dàng hơn.
Việc gán các IP tĩnh trên máy tính Windows về bản chất là giống nhau, tuy nhiên tùy thuộc các phiên bản Windows XP, Win 7, 8, 8.1 thì cách tiến hành hơi khác nhau. Dưới đây là cách thiết lập IP tĩnh cho từng hệ hiều hành!

Windows 7 hoặc Windows 8.x


Thay đổi địa chỉ IP của máy tính trong Windows 7, gõ network and sharing vào hộp tìm kiếm trong phầnStart Menu và chọn Network and Sharing Center như hình dưới đây. Nếu bạn đang dùng Windows 8.x thì nó sẽ hiện ra như ở hình ảnh đầu bài viết.
Đơn 1start
Sau đó, khi cửa sổ Network and Sharing Center mở ra, bấm vào Change adapter settings. Phần này sẽ tương tự trên Windows 7 hoặc 8.x.
2adapter
Nhấp chuột phải vào Local Area Connection hoặc phần Wireless network nếu là mạng Wifi và chọnProperties.
Kết nối khu vực 3local
Trong cửa sổ Local Area Connection Properties bạn sẽ thấy phần  Internet Protocol Version 4 (TCP/IPv4) sau đó nhấn vào nút Properties.
4properties
Bây giờ hãy chọn vào phần Use the following IP address và nhập vào địa chỉ IP chính xác, Subnet mask,Default gateway tương ứng với các thiết lập mạng của bạn. Sau đó nhập DNS của bạn – Cái này rất rõ trong phần Đổi DNS vào facebook. Bình thường bạn hãy điền DNS Google vào nhé: 8-8-8-8 và dòng dưới là 8-8-4-4
Tích vào phần Validate settings upon exit để Windows có thể tìm thấy bất kỳ vấn đề với các địa chỉ bạn đã nhập. Khi bạn hoàn tất nhấn OK.
5entersettings
Bây giờ thoát ra khỏi cửa sổ Local Area Connections.
6closeoutof
Windows 7 sẽ chạy để check mạng và kiểm tra kết nối là tốt – đảm bảo những cài đặt của bạn là đúng. Bạn có thể chạy trình hướng dẫn xử lý sự cố mạng nếu Windows check thấy lỗi.
7verify
Bây giờ bạn có thể mở cửa sổ lệnh CMD (Bằng cách Nhấn nút Windows + R, rồi gõ cmd và Enter) và gõ tiếp vào ipconfig  để xem các thiết lập adapter mạng đã được thay đổi thành công.
8verify
Nguồn: internet
Xem Tiếp

Phân biệt các khái niệm Mb/s và MB/s hoặc Mbps và MBps

Leave a Comment

Phân biệt các khái niệm Mb/s và MB/s hoặc Mbps và MBps, tốc độ mạng, tốc độ tải file, đường truyền của nhà mạng internet, mạng nhanh hay chậm xem thế nào

Khi bạn tiếp xúc với máy tính và mạng internet sẽ rất lúng túng khi gặp phải đơn vị Mbps hay MBps mà không biết nó dùng để chỉ cái gì.


Hai đơn vị này chỉ khác nhau mỗi chữ B viết hoa và chữ b viết thường nhưng nó là 2 khái niệm hoàn toàn khác nhau và không phải ai cũng hiểu rõ. Thông thường nhà mạng sẽ gọi tốc độ mạng là Mbps (Mb/s), còn tốc độ download của IDM sẽ là MBps (MB/s) hay KBps (KB/s)
1 MB tức mà 1 Megabyte

1 Mb tức 1 Megabit

Liên hệ giữa 2 đại lượng

1MB = 2 mũ 10 KB (Kilobyte)

1KB = 2 mũ 10 Byte

1 Byte = 8 bit

==> 1 megabyte/s (1MBps) = 1024 Kilobytes/s (1024 KBps) = 1024*1024 Bytes/s = 1024*1024*8 bits/s
1 Mbps tiếng Anh là 1 Megabit per second ~ 1 Megabit trên mỗi giây.
Là đơn vị đo tốc độ truyền dẫn dữ liệu, tương đương 1.000 kilobit trên giây hay 1.000.000 bit trên giây.

1 MBps tiếng Anh 1 Megabyte per second ~ 1 Megabyte trên mỗi giây.
là đơn vị đo tốc độ truyền dữ liệu khác, thường dùng trao đổi dữ liệu giữa các máy tính hay giữa máy tính với các thiết bị ngoại vi khác (USB, ổ đĩa cứng, ổ đĩa quang)

Một cách gần đúng thì có thể coi

1 MB thì bằng 8Mb (1 megabyte = 8 megabit)

Ví dụ: Chương trình IDM của bạn đang download với tốc độ 1MB/s thì có nghĩa là tốc độ mạng bạn đang sử dụng lúc đó tương đương với 8Mb/s.

Xem Tiếp