计算机简单算法

简介: 计算机简单算法

在计算机科学中,算法是解决特定问题的一系列明确指令。这些指令描述了如何执行计算,通常包括一系列步骤,每一步都明确规定了操作。下面,我将给出一个简单的计算机算法示例——二分查找算法(Binary Search),并附上相应的C语言代码。

二分查找算法简介

二分查找算法是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是目标值,则搜索过程结束;如果目标值大于或小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且同样在那一半的中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

二分查找算法C语言代码

#include <stdio.h> 

// 二分查找函数 
int binarySearch(int arr[], int l, int r, int x) { 
if (r >= l) { 
int mid = l + (r - l) / 2; 

// 如果中间元素是要查找的元素 
if (arr[mid] == x) 
return mid; 

// 如果元素大于中间元素,则只需要在右半部分查找 
if (arr[mid] < x) 
return binarySearch(arr, mid + 1, r, x); 

// 否则元素可以只在左半部分查找 
return binarySearch(arr, l, mid - 1, x); 
} 

// 没有找到元素 
return -1; 
} 

int main(void) { 
int arr[] = {2, 3, 4, 10, 40}; 
int n = sizeof(arr) / sizeof(arr[0]); 
int x = 10; 
int result = binarySearch(arr, 0, n - 1, x); 
(result == -1) ? printf("元素不在数组中\n") 
: printf("元素在数组的索引为 %d\n", result); 
return 0; 
}

代码解释

  1. #include      <stdio.h>:引入标准输入输出头文件,用于使用printf函数。
  2. binarySearch函数:这是二分查找算法的实现。它接受一个整数数组arr,数组的左边界l,右边界r,以及要查找的元素x。函数首先检查数组是否还有元素需要搜索。如果有,就计算中间元素的索引mid,并与目标值x进行比较。如果找到目标值,就返回其索引;如果目标值大于中间元素,就在右半部分继续搜索;如果目标值小于中间元素,就在左半部分继续搜索。
  3. main函数:这是程序的入口点。首先,定义了一个有序数组arr,并计算了数组的长度n。然后,定义了一个要查找的元素x,并调用binarySearch函数进行查找。最后,根据binarySearch函数的返回值,输出相应的信息。

总结

二分查找算法是一种高效的搜索算法,适用于已排序的数组。它的基本思想是:通过比较数组中间的元素和目标值,将搜索范围缩小一半。这个算法的时间复杂度为O(log n),其中n是数组的长度。在上面的代码中,我们用C语言实现了这个算法,并通过一个简单的例子来测试它。

目录
相关文章
C4.
|
1月前
|
存储 算法 C语言
关于c语言用计算机语言表示算法
关于c语言用计算机语言表示算法
C4.
21 1
|
23天前
|
算法 搜索推荐 C语言
用计算机语言表示算法
用计算机语言表示算法
26 1
|
23天前
|
算法 搜索推荐 C语言
用流程图表示计算机算法
用流程图表示计算机算法
29 1
|
1天前
|
搜索推荐 算法 前端开发
计算机Java项目|基于协同过滤算法的体育商品推荐系统
计算机Java项目|基于协同过滤算法的体育商品推荐系统
|
1天前
|
算法
计算机算法设计与分析(1-6章 复习笔记)
计算机算法设计与分析(1-6章 复习笔记)
|
2天前
|
人工智能 算法
计算机算法设计与分析 第3章 动态规划 (笔记)
计算机算法设计与分析 第3章 动态规划 (笔记)
|
2天前
|
算法 C++
计算机算法设计与分析 第2章 递归与分治策略 (笔记)
计算机算法设计与分析 第2章 递归与分治策略 (笔记)
|
2天前
|
算法
计算机算法设计与分析 第1章 算法概述 (笔记)
计算机算法设计与分析 第1章 算法概述 (笔记)
|
23天前
|
算法 C语言
计算机简单算法举例
计算机简单算法举例
7 1
|
23天前
|
自然语言处理 算法 搜索推荐
用自然语言表示计算机算法
用自然语言表示计算机算法
25 1