用折半查找法给10个数字排序C语言(用数组不用指针)
时间: 2024-09-21 20:02:33 浏览: 17
折半查找通常用于已排序的数据结构中,如数组,但它本身并不是一种排序算法。如果你想要使用折半查找,那通常是在一个已排序的数组中查找特定元素,而不是对数组进行排序。然而,如果你想了解如何用C语言实现折半查找,我可以为你提供一个简单的查找函数示例。
对于排序数组,你可以选择像快速排序、归并排序这样的标准排序算法。这里我将给出一个插入排序的例子,因为它的代码相对简单,并且可以展示数组操作的基本思想:
```c
#include <stdio.h>
// 插入排序
void insertionSort(int arr[], int n) {
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
// 折半查找已排序部分的合适位置
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
// 测试插入排序
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++)
printf("%d ", arr[i]);
printf("\n");
}
int main() {
int arr[] = {5, 3, 8, 6, 7, 2, 9, 1, 4};
int n = sizeof(arr) / sizeof(arr[0]);
insertionSort(arr, n);
printf("Sorted array: \n");
printArray(arr, n);
return 0;
}
```
这个程序首先定义了一个插入排序函数,然后创建了一个未排序的数组,调用`insertionSort`函数进行排序,最后打印出排序后的结果。注意,这只是一个基础的插入排序,不是折半查找,因为折半查找是在查找过程中使用的。
如果你想了解如何使用折半查找进行特定操作,比如找到一个特定值在排序数组中的索引,我可以提供那个功能的代码。但请注意,折半查找并不直接涉及到排序整个数组。