返回主站|会员中心|保存桌面|手机浏览
普通会员

河南蓝鸥

教育 培训 郑州iOS培训 iOS开发培训 iOS培训

产品分类
  • 暂无分类
站内搜索
 
友情链接
首页 > 供应产品 > iOS培训学习基础内容
iOS培训学习基础内容
产品: 浏览次数:0iOS培训学习基础内容 
品牌: iOS开发培训,河南iOS培训,iOS培训机构
单价: 面议
最小起订量:
供货总量:
发货期限: 自买家付款之日起 3 天内发货
有效期至: 长期有效
最后更新: 2016-03-09
 
详细信息
 

前言

查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中**常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。面试官对于这些排序可能会要求比较各自的优劣、各种算法的思想及其使用场景。还有要会分析算法的时间和空间复杂度。通常查找和排序算法的考察是面试的开始,如果这些问题回答不好,估计面试官都没有继续面试下去的兴趣都没了。所以想开个好头就要把常见的排序算法思想及其特点要熟练掌握,有必要时要熟练写出代码。

接下来郑州iOS培训带大家分析一下常见的排序算法及其使用场景。限于篇幅,某些算法的详细演示和图示请自行寻找详细的参考。

冒泡排序

冒泡排序是**简单的排序之一了,其大体思想就是通过与相邻元素的比较和交换来把小的数交换到**前面。这个过程类似于水泡向上升一样,因此而得名。举个栗子,对5,3,8,6,4这个无序序列进行冒泡排序。首先从后向前冒泡,4和6比较,把4交换到前面,序列变成5,3,8,4,6。同理4和8交换,变成5,3,4,8,6,3和4无需交换。5和3交换,变成3,5,4,8,6,3.这样一次冒泡就完了,把**小的数3排到**前面了。对剩下的序列依次冒泡就会得到一个有序序列。冒泡排序的时间复杂度为O(n^2)。

实现代码:

public class BubbleSort { public static void bubbleSort(int[] arr) { if(arr == null || arr.length == 0) return ; for(int i=0; ii; j--) { if(arr[j] < arr[j-1]) { swap(arr, j-1, j); } } } } public static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } }

选择排序

选择排序的思想其实和冒泡排序有点类似,都是在一次排序后把**小的元素放到**前面。但是过程不同,冒泡排序是通过相邻的比较和交换。而选择排序是通过对整体的选择。举个栗子,对5,3,8,6,4这个无序序列进行简单选择排序,首先要选择5以外的**小数来和5交换,也就是选择3和5交换,一次排序后就变成了3,5,8,6,4.对剩下的序列一次进行选择和交换,**终就会得到一个有序序列。其实选择排序可以看成冒泡排序的优化,因为其目的相同,只是选择排序只有在确定了**小数的前提下才进行交换,大大减少了交换的次数。选择排序的时间复杂度为O(n^2)

实现代码:

public class SelectSort { public static void selectSort(int[] arr) { if(arr == null || arr.length == 0) return ; int minIndex = 0; for(int i=0; i< arr[minIndex]) { minIndex = j; } } if(minIndex != i) { //如果minIndex不为i,说明找到了更小的值,交换之。 swap(arr, i, minIndex); } } } public static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } }

学好编程,算法是很重要的一部分,学习编程和算法来蓝鸥郑州**的iOS培训学习吧。

蓝鸥郑州iOS开发培训是业界口碑**iOS培训机构,培训期是四个月左右,四个月脱产班(脱产班顾名思义就是脱离生产,也就是不工作,全身心的学习,也就是全日制的学习),可以免费试听,蓝鸥的老师在行业里有3年以上工作项目经验的。目前iOS开发是非常有前景的职业方向,月薪维持在8k-10k,随着时间及经验的积累薪资待遇也逐渐提升(看个人技术、项目、开发、及管理水平,15k-20k的也大有人在),学生可选择全款学习亦可贷学费方式参加学习,工作之后2-3个月就有能力将学费还清。
QQ:2290909800 QQ交流群:493076664;97682894;咨询电话(Phone):0371-55397597 15838221845
地址(Address): 郑州市高新区莲花街牡丹路教育科技产业园区B座 网址(website):http://hn.lanou3g.com/

询价单
0条  相关评论