C语言几个经典的算法

来源:互联网 发布:人工智能人才培养 编辑:程序博客网 时间:2024/05/16 19:20

1、冒泡排序

  • 概述:冒泡排序时一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,直到没有再需要交换为止。
  • 冒泡排序的步骤:
1).比较相邻的元素,如果第一个比第二个大,就交换他们两个;
2).对每一对相邻元素作同样的工作,从开始第一队到结尾的最后一对。
3).针对所有的元素重复以上的步骤,除了最后一个;
4).持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
  • 实例:

2、选择排序

  • 概述:选择排序是一种简单直观的排序算法。
  • 原理:
1).首先在未排序序列中找到最小元素,存放到排序序列的起始位置;
2).然后再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾;
3).一次类推,直到所有元素均排序完毕。
  • 排序基本思想

3、折半查找

  • 概述:在有序列表中,取中间元素作为比较对象,若给定值与中间元素要查找的数相等,则查找成功;
若给定值小于中间元素的要查找的数,则在中间元素的左半区继续查找;
若给定值大于中间元素的要查找的数,则在中间元素的右半区继续查找;
不断重复上述查找过程,直到查找成功,或所查区域无数据元素,查询失败。

  • 步骤:
1).low = 1; high = length;// 设置初始区间
2).当low > high时,返回查找失败信息
3).low <= high, mid = (low+high)/2; // 取中点
a.当key < arr[mid],high = mid+1  // 查找在左半区进行
b.当key > arr[mid],low = mid+1  //查找在右半区进行
c.若key = arr[mid] ,返回数据元素在表中位置 // 查找成功

0 0
原创粉丝点击