算法

作者: 英雄出少年 | 来源:发表于2016-06-14 09:43 被阅读11次

一、选择排序
选择排序 : 从小到大
特点: 拿到其中一个元素依次和其他元素进行比较,最小值出现在0位

int nums[8] = {99, 12, 88, 34, 5, 44, 12, 100};
for(int i = 0 ; i<8 ; i++)
{
  for(int j = i+1 ; j<= 8 ; j++)
{
  if(nums[i] > nuts[j])
{
  int temp = nums[i];
 nums[i] = nums[j];
nums[j] = temp;
}
}
}

二、冒泡排序
冒泡排序从小到大
特点:相邻的两个元素进行比较,每次比较完,最值出现在最后

int nums[8] = {99, 12, 88, 34, 5, 44, 12, 100};
for(int i = 0 ; i<8 ; i++)
{
  for(int j = 0;j < 8 - i; j++)
  {
    if(nums[j] > nums[j+1])
    {
      int temp = nums[j];
      nums[j] = nums[j+1];
      mums[j+1] = temp;
    }
  }

}

三、折半查找
折半查找原理:
数组必须是有序的,必须已知min 和 max(知道范围),动态计算mid的值,取出mid的值进行比较,
如果mid对应的值大于需要查找的值,那么max要变小为 mid - 1;
如果mid对应的值小于需要查找的值,那么min要变大为 mid + 1;

int findKey3(int nums[], int length, int key)
{
    int min, max, mid;
    min = 0;
    max = length - 1;
    
    // 只要还在我们的范围内就需要查找
    while (min <= max) {
        // 计算中间值
        mid = (min  + max) / 2;
        if (nums[mid] < key) {
            min = mid + 1;
        }else if (nums[mid] > key )
        {
            max = mid - 1;
        }else
        {
            return mid;
        }
        
    }
    return -1;
}

相关文章

  • 匈牙利算法

    算法思想 算法流程 算法步骤 算法实现 python 算法应用

  • web开发需要知道的几个算法

    算法分类 快速排序算法 深度优先算法 广度优先算法 堆排序算法 归并排序算法

  • 机器学习算法

    机器学习的算法分监督算法和无监督 算法。监督算法包括回归算法,神经网络,SVM;无监督算法包括聚类算法,降维算法。...

  • 字符串匹配

    BF 算法和 RK 算法BM 算法和 KMP 算法

  • 垃圾回收算法有几种类型? 他们对应的优缺点又是什么?

    常见的垃圾回收算法有: 标记-清除算法、复制算法、标记-整理算法、分代收集算法 标记-清除算法 标记—清除算法包括...

  • 头条-手撕代码

    [toc] 图算法 以及最短路径算法 树算法 手写LRU 排序算法 链表算法

  • 关于一些算法

    我们平常说的算法按照使用方向加密算法,排序算法,搜索算法,优化算法,音视频处理算法,图片处理算法 1.加密解密算法...

  • 给我巨大影响的技术书籍

    算法《算法概论》《算法设计与分析基础》 Anany Levitin《算法引论》Udi Manber《算法导论》《什...

  • 缓存相关

    cache淘汰算法:LIRS 算法 缓存那些事 Redis缓存淘汰算法,LRU算法,LRU算法讲解

  • LZW压缩算法

    参考链接:超级简单的数据压缩算法—LZW算法压缩算法——lzw算法实现LZW算法 LZW 压缩算法正确图解

网友评论

      本文标题:算法

      本文链接:https://www.haomeiwen.com/subject/sruydttx.html