zoukankan      html  css  js  c++  java
  • iOS常见算法(二分法 冒泡 选择 快排)

    二分法:
    平均时间复杂度:O(log2n)
    int halfFuntion(int a[], int length, int number)
     {
    int start = 0;
    int end = length - 1;
    int index = 0;
    while(start < end)
     {
    index = start + (end - start)/2
    if(a[index] == number){
    return index;
     } else if(a[index] < number){
    start = index + 1;
     } else{
    end = index - 1;
     }
     }
    return index;
     }
     
     
    冒泡排序:

    /**

     平均时间复杂度:O(n2)

     

     空间复杂度:O(1)  (用于交换)

     

     稳定性:稳定

     */

    void paoFuntion(int a[], int length){

        for (int i = 0; i < length - 1; i++) {

            for (int j = 0; j < length - 1 - i; j++) {

                if (a[j] > a[j+1]) {

                    int temp = a[j];

                    a[j] = a[j+1];

                    a[j+1] = temp;

                }

            }

        }

    }

     
     
    选择排序:

    /**

     平均时间复杂度:O(n2)

     

     空间复杂度:O(1)  (用于交换和记录索引)

     

     稳定性:不稳定 (比如序列【5, 5, 3】第一趟就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)

     */

    void chooseFuntion(int a[],int length){

        for (int i = 0; i < length - 1; i++) {

            for (int j = i + 1; j < length ; j++) {

                if (a[i] > a[j]) {

                    int temp = a[j];

                    a[j] = a[i];

                    a[i] = temp;

                }

            }

        }

    }

     

    快排:点击打开链接

    http://blog.csdn.net/niejiafa_131/article/details/44807653

  • 相关阅读:
    windows常用命令
    Qt 添加 QtNetwork 库文件
    LoadLibrary加载动态库失败
    C++11 Function 使用场景
    编程书籍集
    代码重构例集
    多重循环编码规范
    vim 命令学习(基础篇)
    QT构建窗体(父窗体传为野指针)异常案例
    JAVA_SE基础——26.[深入解析]局部变量与成员变量的差别
  • 原文地址:https://www.cnblogs.com/NSong/p/6217358.html
Copyright © 2011-2022 走看看