美文网首页
常用算法的基本对比

常用算法的基本对比

作者: lotawei | 来源:发表于2017-11-19 23:21 被阅读1次

开这个专题主要是用于维持一种编程状态,在有算法的情况下.来解决实际生活的问题是一种很好的编程习惯.


排序终结 .jpg
  • 二分查找
#include <stdio.h>
int BinySerch(int *arr, int temp, int lengh)//设计参数,由于是整形数组,所以我们必须传递他  
{                                        //长度否则数组传参时会发生降级  
int left = 0, right = lengh - 1;  
int mid ;  
while (left <= right)  
{  
mid = left + (right - left) / 2;  
if (temp < arr[mid])  
{  
right = mid - 1;  
}  
else if (temp > arr[mid])  
{  
left = mid + 1;  
}  
else  
{  
return mid;  
}  
}  
return -1;  
}  
  • 插入排序 *
 void insertSort(int *array, int len)  
{  
    int i, j, temp;  
    for(i = 1; i < len; i ++)  
    {  
        temp = array[i];  
        for(j = i - 1; j >= 0; j --)  
        {  
            if(array[j] > temp)  
            {  
                array[j + 1] = array[j];      
            }else  
            {  
                break;  
            }  
        }  
        array[j + 1] = temp;  
    }  
} 
  • 快速排序

*函数名:swap 
*作用:交换两个数的值 
*参数:交换的两个数 
*返回值:无 
void swap(int *a, int *b)    
{  
   int temp;  
 
   temp = *a;  
   *a = *b;  
   *b = temp;  
 
   return ;  
}  
void quicksort(int array[], int maxlen, int begin, int end)  
{  
   int i, j;  
 
   if(begin < end)  
   {  
       i = begin + 1;  // 将array[begin]作为基准数,因此从array[begin+1]开始与基准数比较!  
       j = end;        // array[end]是数组的最后一位  
           
       while(i < j)  
       {  
           if(array[i] > array[begin])  // 如果比较的数组元素大于基准数,则交换位置。  
           {  
               swap(&array[i], &array[j]);  // 交换两个数  
               j--;  
           }  
           else  
           {  
               i++;  // 将数组向后移一位,继续与基准数比较。  
           }  
       }  
 
       /* 跳出while循环后,i = j。 
        * 此时数组被分割成两个部分  -->  array[begin+1] ~ array[i-1] < array[begin] 
        *                           -->  array[i+1] ~ array[end] > array[begin] 
        * 这个时候将数组array分成两个部分,再将array[i]与array[begin]进行比较,决定array[i]的位置。 
        * 最后将array[i]与array[begin]交换,进行两个分割部分的排序!以此类推,直到最后i = j不满足条件就退出! 
        */  
 
       if(array[i] >= array[begin])  // 这里必须要取等“>=”,否则数组元素由相同的值时,会出现错误!  
       {  
           i--;  
       }  
 
       swap(&array[begin], &array[i]);  // 交换array[i]与array[begin]  
         
       quicksort(array, maxlen, begin, i);  
       quicksort(array, maxlen, j, end);  
   }  
}

相关文章

  • 常用算法的基本对比

    开这个专题主要是用于维持一种编程状态,在有算法的情况下.来解决实际生活的问题是一种很好的编程习惯. 二分查找 插入...

  • 冒泡与选择排序

    优化版冒泡排序 选择排序 数据交换常用三种算法对比

  • 推荐系统(一):基于物品的协同过滤算法

    一、基本原理 协同过滤(collaborative filtering)算法是最经典、最常用的推荐算法。其基本思想...

  • IOS常用基本算法

    一、【选择排序】 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数...

  • 算法产品经理相关资料

    推荐系统中常用算法 以及优点缺点对比 | 人人都是产品经理 算法是不是产品经理应该考虑的问题?为什么? - 知乎 ...

  • 各种排序算法的使用范围

    面试题目:各种排序算法的使用范围 解析: 排序可以算是最基本,最常用的算法,也是笔试面试中最常被考的算法,最基本的...

  • 【算法-排序算法-快速排序】

    排序算法和搜索算法是我们最先接触到的基本的算法。越是基础越是重要。排序算法常用的大概有五种左右,其中基本的三个为选...

  • 八大算法

    算法中比较常用的有八种算法,基本算法的题,都是依靠这些基础算法或者结合使用出题的,所以要学会基础算法,才有可能去更...

  • 常用非比较类排序算法

    前言 本篇完全转载于常用排序算法总结(二)。 其中有部分代码进行了更改,更改成java语言。 非对比类排序算法 非...

  • 标准模板库STL

    一、STL简介 STL实现了计算机科学领域里常用的基本数据结构和基本算法; STL主要包含了容器、算法、迭代器。 ...

网友评论

      本文标题:常用算法的基本对比

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