Đề bài:
- Nhập/xuất mảng (nhập tự động). Nhập n.
- Sắp xếp mảng:
- Interchange
- Insertion
- Selection
- Bubble
- Tìm kiếm vị trí xuất hiện:
- Tuyến tính
- Nhị phân
Do lớp 10 em lười học môn lập trình C quá vì k có hứng nên đã rớt môn giờ phải học lại mà vở thì mất e thì chả biết gì bác nào có lòng tốt giúp em với :< đề thi chỉ có v thôi em làm đc hết rồi còn cái tìm vị trí thì em chịu mong mn giúp đỡ mình
code của mình:
#include <stdio.h>
#include <conio.h>
void nhap(int a[], int& n)
{
printf("nhap phan tu cua mang :");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("a[%d]=", i);
scanf("%d", &a[i]);
}
}
void xuat(int a[], int n)
{
for (int i = 0; i < n; i++)
printf("%4d", a[i]);
}
void swap(int& e, int& f)
{
int p = e;
e = f;
f = p;
}
void SelectionSort(int a[], int n)
{
for (int i = 0; i < n - 1; i++) {
int min = i;
for (int j = i + 1; j < n; j++)
if (a[min] > a[j])
min = j;
swap(a[i], a[min]);
}
}
void InsertionSort(int a[], int n)
{
int pos, i, x;
for (i = 0; i < n; i++) {
pos = i - 1;
x = a[i];
while (pos >= 0 && a[pos] > x) {
a[pos + 1] = a[pos];
pos--;
}
a[pos + 1] = x;
}
}
void BubbleSort(int a[], int n)
{
int i, j;
for (int i = 0; i < n - 2; i++)
for (int j = n - 1; j > i; j--)
if (a[j] < a[j - 1])
swap(a[j], a[j - 1]);
}
void InterchangeSort(int a[], int n)
{
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++)
if (a[i] > a[j])
swap(a[i], a[j]);
}
int timkiem(int a[], int n, int x)
{
for (int i = 0; i < n; i++)
if (a[i] == x)
return 1;
return 0;
}
int BinarySearch(int a[], int n, int x)
{
int left = 0, right = n - 1, mid;
while (left <= right) {
mid = (left + right) / 2;
if (x == a[mid])
return 2; //Tìm th?y x t?i mid
if (x < a[mid])
right = mid - 1;
else
left = mid + 1;
}
return 0; // trong dãy không có x
}
int main()
{
int i, a[100], n, x;
nhap(a, n);
printf("nhap phan tu can tim ");
scanf("%d", &x);
int b = timkiem(a, n, x);
if (b == 1) {
printf("phuong phap tim kiem tuyen tinh %d co trong mang \n ", x);
}
else {
printf("phuong phap tim kiem tuyen tinh %d ko co trong mang \n", x);
}
int c = BinarySearch(a, n, x);
if (c == 2) {
printf(" phuong phap tim kiem nhi phan %d co trong mang \n", x);
}
else {
printf("phuong phap tim kiem nhi phan %d ko co trong mang \n", x);
}
SelectionSort(a, n);
printf("\nphuong phap SelectionSort \n");
xuat(a, n);
InsertionSort(a, n);
printf("\nphuong phap InsertionSort\n");
xuat(a, n);
BubbleSort(a, n);
printf("\nphuong phap BubbleSort\n");
xuat(a, n);
InterchangeSort(a, n);
printf("\nphuong phap InterchangeSort\n");
xuat(a, n);
_getch();
}
mình cảm ơn