用数组存储10个数,并对这10个数实现以下功能: 1、用线性查找算法查找任意一个数 2、用二分查找算法查找任意一个数 3、求此组数据中的最大值、最小值、平均值 4、用交换法实现升序排列 5、用选择法实现升序排列
时间: 2024-02-01 07:03:43 浏览: 82
下面是用 C 语言实现的示例代码:
```c
#include <stdio.h>
#define SIZE 10
// 线性查找算法
int linearSearch(int arr[], int target) {
for (int i = 0; i < SIZE; i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
// 二分查找算法
int binarySearch(int arr[], int target) {
int low = 0, high = SIZE - 1;
while (low <= high) {
int mid = (low + high) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}
// 求最大值
int findMax(int arr[]) {
int max = arr[0];
for (int i = 1; i < SIZE; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
// 求最小值
int findMin(int arr[]) {
int min = arr[0];
for (int i = 1; i < SIZE; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
// 求平均值
double findAvg(int arr[]) {
double sum = 0;
for (int i = 0; i < SIZE; i++) {
sum += arr[i];
}
return sum / SIZE;
}
// 交换法实现升序排列
void bubbleSort(int arr[]) {
for (int i = 0; i < SIZE - 1; i++) {
for (int j = 0; j < SIZE - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 选择法实现升序排列
void selectionSort(int arr[]) {
for (int i = 0; i < SIZE - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < SIZE; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
int main() {
int arr[SIZE] = {10, 5, 7, 3, 8, 2, 6, 4, 9, 1};
int target = 8;
// 线性查找算法
int index = linearSearch(arr, target);
if (index != -1) {
printf("线性查找:找到了,下标是 %d\n", index);
} else {
printf("线性查找:没找到\n");
}
// 二分查找算法
int index2 = binarySearch(arr, target);
if (index2 != -1) {
printf("二分查找:找到了,下标是 %d\n", index2);
} else {
printf("二分查找:没找到\n");
}
// 求最大值、最小值、平均值
int max = findMax(arr);
int min = findMin(arr);
double avg = findAvg(arr);
printf("最大值:%d\n", max);
printf("最小值:%d\n", min);
printf("平均值:%f\n", avg);
// 交换法实现升序排列
bubbleSort(arr);
printf("交换法升序排列:");
for (int i = 0; i < SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 选择法实现升序排列
selectionSort(arr);
printf("选择法升序排列:");
for (int i = 0; i < SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
阅读全文