Showing posts with label Thuật toán. Show all posts
Showing posts with label Thuật toán. Show all posts
Mar 28, 2018
Open - Close
Ghi nhớ: Hãy làm cho mã nguồn của bạn đáp ứng được nguyên tắc
“Luôn đóng cho sự chỉnh sửa, và luôn mở cho việc mở rộng” càng nhiều
càng tốt. Nói cách khác, hãy thiết kế mã nguồn sao cho không cần phải
thay đổi gì nhiều nhưng luôn có thể mở rộng khi cần.
Dec 22, 2015
JavaScript: Chuyển tiếng Việt có dấu sang không dấu
function change_alias(alias) {
var str = alias;
str = str.toLowerCase();
str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g,"a");
str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g,"e");
str = str.replace(/ì|í|ị|ỉ|ĩ/g,"i");
str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g,"o");
str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g,"u");
str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g,"y");
str = str.replace(/đ/g,"d");
str = str.replace(/!|@|%|\^|\*|\(|\)|\+|\=|\<|\>|\?|\/|,|\.|\:|\;|\'|\"|\&|\#|\[|\]|~|\$|_|`|-|{|}|\||\\/g," ");
str = str.replace(/ + /g," ");
str = str.trim();
return str;
}
var str = alias;
str = str.toLowerCase();
str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g,"a");
str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g,"e");
str = str.replace(/ì|í|ị|ỉ|ĩ/g,"i");
str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g,"o");
str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g,"u");
str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g,"y");
str = str.replace(/đ/g,"d");
str = str.replace(/!|@|%|\^|\*|\(|\)|\+|\=|\<|\>|\?|\/|,|\.|\:|\;|\'|\"|\&|\#|\[|\]|~|\$|_|`|-|{|}|\||\\/g," ");
str = str.replace(/ + /g," ");
str = str.trim();
return str;
}
Nov 23, 2015
Sep 20, 2015
Sort
#include<algorithm>
#include<functional> // std::greater
using namespace std;
long long a[100005];
long long n;
int main()
{
sort(a, a+n); // sắp xếp mảng a tăng dần từ phần tử 0 đến phần tử n-1
sort(a+1, a+1+n); // sắp xếp mảng a tăng dần từ phần tử 1 đến phần tử n
sort(a, a+n, greater<int>()); // sắp xếp mảng a giảm dần từ p.tử 0 đến p.tử n-1
}
#include<functional> // std::greater
using namespace std;
long long a[100005];
long long n;
int main()
{
sort(a, a+n); // sắp xếp mảng a tăng dần từ phần tử 0 đến phần tử n-1
sort(a+1, a+1+n); // sắp xếp mảng a tăng dần từ phần tử 1 đến phần tử n
sort(a, a+n, greater<int>()); // sắp xếp mảng a giảm dần từ p.tử 0 đến p.tử n-1
}
library.cpp
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int n;
int a[10001];
void input(){
scanf("%d", &n);
for(int i=1;i<=n;i++)
scanf("%d", &a[i]);
}
void khoi_tao(){
long dem;
int tg;
dem = 0;
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
if(a[i]>a[j]){
dem++;
tg = a[i];
a[i] = a[j];
a[j] = tg;
}
std::sort(a, a+n);
printf("%d", dem);
}
int main(){
input();
khoi_tao();
return 0;
}
#include<stdlib.h>
#include<algorithm>
using namespace std;
int n;
int a[10001];
void input(){
scanf("%d", &n);
for(int i=1;i<=n;i++)
scanf("%d", &a[i]);
}
void khoi_tao(){
long dem;
int tg;
dem = 0;
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
if(a[i]>a[j]){
dem++;
tg = a[i];
a[i] = a[j];
a[j] = tg;
}
std::sort(a, a+n);
printf("%d", dem);
}
int main(){
input();
khoi_tao();
return 0;
}
Feb 4, 2015
out và ref trong C#
- Cả out và ref được dùng khi ta muốn truyền tham chiếu vào hàm.
- Dùng ref khi mà cần thay đổi giá trị tham số truyền vào và có quan tâm đến giá trị truyền vào là bao nhiều (vì thế cần khởi tạo giá trị trước khi truyền vào) rồi mới thay đổi.
void refFunc(ref int i)
{
i++;
}
int n;
refFunc(ref n);
//Không được vì n chưa khởi tạo.
int n = 3;
refFunc(ref n);
//Được, n = 4
- Dùng out khi mà cần thay đổi giá trị tham số truyền vào, nhưng không quan tâm giá trị tham số truyền vào là bao nhiêu (ta phải khởi tạo lại giá trị này trong hàm) rồi mới thay đổi.
void outFunc(out int i)
{
i = 0;
i++;
}
int n;
outFunc(out n);
//n = 1
int n = 5;
outFunc(out n);
//n = 1; khổng phải 6
- Dùng ref khi mà cần thay đổi giá trị tham số truyền vào và có quan tâm đến giá trị truyền vào là bao nhiều (vì thế cần khởi tạo giá trị trước khi truyền vào) rồi mới thay đổi.
void refFunc(ref int i)
{
i++;
}
int n;
refFunc(ref n);
//Không được vì n chưa khởi tạo.
int n = 3;
refFunc(ref n);
//Được, n = 4
- Dùng out khi mà cần thay đổi giá trị tham số truyền vào, nhưng không quan tâm giá trị tham số truyền vào là bao nhiêu (ta phải khởi tạo lại giá trị này trong hàm) rồi mới thay đổi.
void outFunc(out int i)
{
i = 0;
i++;
}
int n;
outFunc(out n);
//n = 1
int n = 5;
outFunc(out n);
//n = 1; khổng phải 6
Jan 9, 2015
Giải thuật
- Đệ quy
- Danh sách liên kết
- Stack
- Hàng đợi
-Cây
- Tìm UCLN
1. int UCLN (int a, int b)
{
return b?UCLN(b,a%b):a;
}
- Sắp xếp
Nổi bọt
Lựa chọn
Merge sort
Quick sort
Heap sort
- Danh sách liên kết
- Stack
- Hàng đợi
-Cây
- Tìm UCLN
1. int UCLN (int a, int b)
{
return b?UCLN(b,a%b):a;
}
- Sắp xếp
Nổi bọt
Lựa chọn
Merge sort
Quick sort
Heap sort
Subscribe to:
Comments (Atom)