美文网首页
iOS面试几个基本算法

iOS面试几个基本算法

作者: 武山小伙 | 来源:发表于2018-03-09 01:12 被阅读0次

1.【快速排序】

算法介绍:假设要排序的数组是A[0]……A[n-1]

1)设置两个变量i、j,排序开始的时候:i=0,j=n-1;

2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];

3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]和A[i]互换;

4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换;

5)重复第3、4步,直到i=j; (3,4步中,没找到符合条件的值,即3中A[j]不小于key,4中A[i]不大于key的时候改变j、i的值,使得j=j-1,i=i+1,直至找到为止。找到符合条件的值,进行交换的时候i, j指针位置不变。另外,i==j这一过程一定正好是i+或j-完成的时候,此时令循环结束)。

2.【选择排序】

算法介绍:最值出现在起始端

1)第1趟:在n个数中找到最小(大)数与第一个数交换位置

2)第2趟:在剩下n-1个数中找到最小(大)数与第二个数交换位置

3)重复这样的操作...依次与第三个、第四个...数交换位置

4)第n-1趟,最终可实现数据的升序(降序)排列。

3.【冒泡排序】

算法介绍:冒泡排序就是比较是相邻的两个元素比较,把小的元素往前调或者把大的元素往后调。

1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3)针对所有的元素重复以上的步骤,除了最后一个。

4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

4.【二分查找(折半查找)】

算法介绍:假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

算法要求:

1)必须采用顺序存储结构

2)必须按关键字大小有序排列。

二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果xa[n/2],则只要在数组a的右半部搜索x;重复方法。

相关文章

  • iOS面试几个基本算法

    1.【快速排序】 算法介绍:假设要排序的数组是A[0]……A[n-1] 1)设置两个变量i、j,排序开始的时候:i...

  • 面试中常用的几个基本算法整理记录(二)

    面试中常用的几个基本算法整理记录(二) 无意中看到了面试中的 10 大排序算法总结原文地址记录一下,方便查找。 查...

  • 收集的网站

    数据结构PDF下载地址Ios动画教程 IOS 面试排序算法

  • 面试中常用的几个基本算法整理记录

    面试中常用的几个基本算法整理记录 二分查找 递归方法: binarySearch1int binarySearch...

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

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

  • 基本的一些熟知的算法总结:oc版

    每次面试,想必大家都会多多少少的遇到些算法题。忙里偷闲整理了几个基本的算法,就当是复习了,希望给需要的人作为参考!...

  • 算法基础

    不积跬步,无以至千里;不积小流,无以成江海 iOS开发中基本上用不到什么算法,但是在面试的时候又会经常问算法方面相...

  • 【从0到1学算法】二分查找法

    说到算法,大家应该都会脑壳疼吧。除了应付一下面试,准备过算法,也接触过不少算法,但是面试完了,基本上就忘光了。但不...

  • iOS面试常见算法题2020(一)

    现在面试iOS中高级开发,算法题已是必然会出现的一个环节了,这里把面试遇到的算法题和LeetCode上一些比较经典...

  • 算法

    来源:开发者应该掌握的几种排序算法 - 简书 来源:ios面试数据结构与算法 - CSDN博客 首先要知道一个算法...

网友评论

      本文标题:iOS面试几个基本算法

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