iOS常见算法(二分法 冒泡 选择 快排)[通俗易懂]

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;

            }

        }

    }

}


快排:点击打开链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116103.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用ipset来批量控制iptables

    使用ipset来批量控制iptables配置如下1、安装ipsetyuminstallipset2、使用ipset创建列表ipsetcreateserverhash:ip3、添加ipipsetaddserver192.168.1.1ipsetaddserver192.168.1.24、导出ipsetipsetsave>/etc/sysconfig/ipset5、在导出到/etc/

    2022年10月7日
    4
  • 股票历史数据库(腾讯股票历史数据接口)

    歪枣网财经数据下载接口集合,百度搜索歪枣网官网序号 名称 接口描述 数据字段 更新日期 操作0 A股列表 沪深京A股基本信息 code股票代码name股票名称stype股票类型,1:深证股票,2:上证股票,3:北证股票,4:港股hsgt沪深港通,1:沪股通:2:深股通、3:港股通(沪)、4:港股通(深)、5:港股通(沪+深)bk所属板块,个股包括主板、创业板、科创板cfg成分股,该板块的成分股roeROEzgb总股本(股)ltgb流通股本(股)ltsz流通市值(元)

    2022年4月10日
    287
  • Hook技术简单介绍

    Hook技术简单介绍Hook主要就是通过一定手段在程序执行过程中进行干预。IATHook篡改MessageBox借用accills的例子#include&lt;windows.h&gt;#include&lt;stdio.h&gt;#include&lt;imagehlp.h&gt;#pragmacomment(lib,"imagehlp.lib")//以MessageBoxA的…

    2022年5月18日
    61
  • mysql怎么修改密码,mysql修改密码的几种方法

    mysql怎么修改密码,mysql修改密码的几种方法方法一:通过mysql控制台直接设置密码第一步我们打开mysqlconsole,输入mysql原先密码,按回车键进去,这里原密码为空,如下图所示:第二步输入“setpassword=password(‘123456’);”,按回车键之后,就成功将密码改为123456了,如果想修改密码为其他,直接将123456改成想要设置的密码就可以,如下图所示:第三步我们使用mysql图形界面工具navicat尝试一下密码是否修改成功,新建连接,输入数据库用户名和刚刚设置的密码,点击确定,如下图所示:.

    2022年7月16日
    12
  • 【python】蒙特卡洛树搜索(MCTS)简单实现

    过程包括以下四步:选择Selection:从根节点R开始,递归选择最优的子节点(后面会解释)直到达到叶子节点L。扩展Expansion:如果L不是一个终止节点(也就是,不会导致博弈游戏终止)那么就创建一个或者更多的字子节点,选择其中一个C。模拟Simulation:从C开始运行一个模拟的输出,直到博弈游戏结束。反向传播Backpropagation:用模拟的结果输…

    2022年4月4日
    53
  • 配置是如何进行的 configure

    配置是如何进行的 configure

    2021年7月30日
    61

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号