Chia sẻ kiến thức ngôn ngữ lập trình C, C++, C#, Java, Python, PHP, JS, SQL ...
Các điều hành viên: Admin, Mod, SMod
gửi bởi nghiammo1992 » 13/09/2021 10:48
Thuật toán tìm kiếm tuyến tính (linear search)- Mã: Chọn tất cả
using namespace std;
int LinearSearch(int A[], int n, int x)
{
for (int i = 0; i < n; i++)
if (A[i] == x)
return i;
return -1; }
int main()
{
int arr[] {32,71,12,45,-26,80,53,-33,7,99,-5,1,2,3,100};
int n = sizeof(arr) / sizeof(arr[0]); cout << "So luong phan tu trong mang: " << n << endl;
cout << LinearSearch(arr, n, -5);
return 0;
}
-
nghiammo1992
- ☀️2/30☀️
-
- Bài viết: 15
- Ngày tham gia: 08/03/2012 10:56
- Đến từ: Hà Giang
- Thiết bị: Nokia N96
- Số điện thoại: 0367790762
-
gửi bởi nghiammo1992 » 13/09/2021 10:56
Thuật toán tìm kiếm nhị phân (binary search) (code này chỉ áp dụng cho mảng đã sắp xếp tăng dần)- Mã: Chọn tất cả
using namespace std;
int BinarySearch(int A[], int n, int x)
{
int left = 0;
int right = n - 1;
int mid;
while (left <= right)
{
mid = (left + right) / 2;
if (A[mid] == x)
return mid; if (A[mid] > x)
right = mid - 1; else if (A[mid] < x)
left = mid + 1; }
return -1; }
int main()
{
int arr[] {-33,-26,-5,1,2,3,7,12,32,45,53,71,80,99,100};
int n = sizeof(arr) / sizeof(arr[0]); cout << "So luong phan tu trong mang: " << n << endl;
cout << BinarySearch(arr, n, -5);
return 0;
}
-
nghiammo1992
- ☀️2/30☀️
-
- Bài viết: 15
- Ngày tham gia: 08/03/2012 10:56
- Đến từ: Hà Giang
- Thiết bị: Nokia N96
- Số điện thoại: 0367790762
-
gửi bởi nghiammo1992 » 13/09/2021 11:03
Thuật toán tìm kiếm nội suy (interpolation search) (code này chỉ áp dụng cho mảng đã sắp xếp tăng dần)- Mã: Chọn tất cả
using namespace std;
int InterpolationSearch(int A[], int n, int x)
{
int left = 0;
int right = n - 1;
int mid;
while (left <= right && x >= A[left] && x <= A[right])
{
mid = left + (right - left) * (x - A[left]) / (A[right] - A[left]);
if (A[mid] == x)
return mid;
if (A[mid] > x)
right = mid - 1;
else if (A[mid] < x)
left = mid + 1;
}
return -1; }
int main()
{
int arr[] {-33,-26,-5,1,2,3,7,12,32,45,53,71,80,99,100};
int n = sizeof(arr) / sizeof(arr[0]); cout << "So luong phan tu trong mang: " << n << endl;
cout << InterpolationSearch(arr, n, -5);
return 0;
}
-
nghiammo1992
- ☀️2/30☀️
-
- Bài viết: 15
- Ngày tham gia: 08/03/2012 10:56
- Đến từ: Hà Giang
- Thiết bị: Nokia N96
- Số điện thoại: 0367790762
-
Quay về C, C++, C#, Java, Python, PHP, JS, SQL ...
Đang xem chuyên mục này: Không có thành viên nào đang trực tuyến và 49 khách