会员卡
稳拿计划
APP下载
注册
登录
首页
在线实习
课程
考点刷题
专栏
改简历
校招信息
冲刺一线
基础就业
冲刺一线
Java开发
产品经理
前端开发
测试开发
UI/交互
运营
java语言
占笔面试15%
数据结构
占笔面试30%
算法
占笔面试20%
专业课
占笔面试15%
项目框架
占笔面试15%
数据库
占笔面试10%
设计模式
占笔面试10%
开放问题
占笔面试5%
开源框架
占笔面试5%
算法
链表算法
链表算法
字符串算法
字符串算法
排序算法
简单算法(冒泡、简单选择等)
高级排序(快排、堆排等)
动态规划算法
动态规划算法
大数据相关算法
大数据相关算法
智力分析问题
智力分析题
简单算法(冒泡、简单选择等)(共11题)
点击右边按钮,记录本次看题进度~~
精选
全部
01
什么是冒泡排序?
冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止
来自:排序算法-简单算法(冒泡、简单选择等)
02
几种常见的排序算法,手写
基本排序算法:冒泡,选择,插入,希尔,归并,快排冒泡排序:functionbubbleSort(data){vartemp=0;for(vari=data.length;i>0;i--){for(varj=0;j<i-1;j++){if(data[j]>data[j+1]){temp=data[j];data[j]=data[j+1];data[j+1]=temp;}}}returndata;}选择排序:functionselectionSort(data){for(vari=0;i<data.length;i++){varmin=data[i];vartemp;varindex=1;for(varj=i+1;j<data.length;j++){if(data[j]<min){temp=data[j];data[j]=min;min=temp;}}temp=data[i];data[i]=min;data[index]=temp}}插入排序:functioninsertSort(data){varlen=data.length;for(vari=0;i<len;i++){varkey=data[i];varj=i-1;while(j>=0&&data[j]>key){data[j+1]=data[i];j--;}data[j+1]=key;}returndata;}希尔排序:functionshallSort(array){varincrement=array.length;varivartemp;//暂存do{//设置增量increment=Math.floor(increment/3)+1;for(i=increment;i<array.length;i++){if(array[i]<array[i-increment]){temp=array[i];for(varj=i-increment;j>=0&&temp<array[j];j-=increment){array[j+increment]=array[j];}array[j+increment]=temp;}}}while(increment>1)returnarray;}归并排序:functionmergeSort(array){varlen=array.length;if(len<2){returnarray;}varmiddle=Math.floor(len/2),left=array.slice(0,middle),right=array.slice(middle);returnmerge(mergeSort(left),mergeSort(right));}functionmerge(left,right){varresult=[];while(left.length&&right.length){if(left[0]<=right[0]){result.push(left.shift());}else{result.push(right.shift());}}while(left.length)result.push(left.shift());while(right.length)result.push(right.shift());returnresult;}快速排序functionquickSort(arr){if(arr.length==0)return[];varleft=[];varright=[];varpivot=arr[0];for(vari=0;i<arr.length;i++){if(arr[i]<pivot){left.push(arr[i]);}else{right.push(arr[i]);}}returnquickSort(left).concat(pivot,quickSort(right));}
来自:排序算法-简单算法(冒泡、简单选择等)
03
知道的排序算法 说一下冒泡快排的原理
冒泡排序:重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
来自:排序算法-简单算法(冒泡、简单选择等)
04
简述冒泡排序的思想原理及具体步骤
冒泡排序的思想原理就是:交换排序。相邻的两个数字进行比较,如果反序则两两交换,直到没有要交换的,则排序结束。具体步骤:1.比较相邻的两个数据,第一个比第二个大,则相互交换2.每个相邻的两个数字都进行此操作,从左边的第一对进行到最后一对。此时最后一个元素是最大的3.所有元素重复以上两步,刚进行交换至最后的元素不用再参加比较(因为后面的已经是最大的数值了)4.持续比较,直到没有要比较的数字为止。
来自:排序算法-简单算法(冒泡、简单选择等)
05
将一个整数序列整理为升序,两趟处理后变为10,12,21,9,7,3,4,25,则采用的排序算法可能Z:( )
正确答案是C第一层循环:依次遍历序列当中的每一个元素第二层循环:将遍历得到的当前元素依次与余下的元素进行比较符合最小元素的条件,则交换选择排序的基本思想:比较+交换
来自:排序算法-简单算法(冒泡、简单选择等)
06
下列排序方法中,最好情况下比较次数最少的是()
正确答案是A这道题是看大家对算法本身的理解,通常所说的复杂度都是排序算法的平均复杂度。但是不少算法,实际上有最好的以及最差的时间复杂度。冒泡
来自:排序算法-简单算法(冒泡、简单选择等)
07
以下哪项是冒泡排序的核心算法思路()
正确答案是A面试中会经常出现一种现象:让写一个冒泡排序,但是写成了选择排序等。也就是说,对排序的核心逻辑并没有理解到位。上面四种选项分别对应
来自:排序算法-简单算法(冒泡、简单选择等)
08
冒泡排序的原理?
稳定,平均/最坏时间复杂度O(n²),元素基本有序时最好时间复杂度O(n),空间复杂度O(1)。比较相邻的元素,如果第一个比第二个大就进行交
来自:排序算法-简单算法(冒泡、简单选择等)
09
使用js实现数组的冒泡排序
对一组数,每一轮从头开始依次对相邻的数比较,大的排个后面,小的排个前面。functionsortArr(arr){if(arr&&a
来自:排序算法-简单算法(冒泡、简单选择等)
10
下列排序方法中,最坏情况下比较次数最少的是( )
正确答案是DA:冒泡排序最坏情况时间复杂度O(n^2)B:简单选择排序最坏情况时间复杂度为O(n^2),时间复杂度和冒泡排序一样,但略优于冒
来自:排序算法-简单算法(冒泡、简单选择等)
上一页
1
2
下一页
记录刷题进度
手机刷题更方便