冒泡排序的最佳情况的时间复杂度为什么是O(n)
2016-10-22 16:11
267 查看
今天去某公司面试,有一个问题问,冒泡排序的最佳情况的时间复杂度是多少,我答的是O(n^2),面试官一脸懵逼,今天在Stackoverflow上看到了O(n)的写法,最佳情况的时间复杂度是O(n),今天是涨姿势了。
当arr原本就是升序时,最佳时间发杂度就是O(n)。
public void bubbleSort(int arr[]) { boolean didSwap; for(int i = 0, len = arr.length; i < len - 1; i++) { didSwap = false; for(int j = 0; j < len - i - 1; j++) { if(arr[j + 1] < arr[j]) { swap(arr, j, j + 1); didSwap = true; } } if(didSwap == false) return; } }
当arr原本就是升序时,最佳时间发杂度就是O(n)。
相关文章推荐
- 冒泡排序最佳情况的时间复杂度,为什么是O(n)
- 冒泡排序最佳情况的时间复杂度,为什么是O(n)
- 冒泡排序最佳情况的时间复杂度,为什么是O(n)
- 冒泡法的算法最佳情况下的时间复杂度为什么是O(n)
- 冒泡排序最佳情况的时间复杂度,为什么是O(n)
- 冒泡排序法为什么最佳的时间复杂度是O(n)
- 为什么冒泡排序最好情况下(有序)时间复杂度是O(n),而快速选择是O(O^2)?
- 几种排序在最坏和最好情况下的时间复杂度
- n个无序整数,已知第i个数在排好序的序列中的位置为j,满足|i-j|<=K,请设计一种排序算法,对该序列进行排序。注:算法时间复杂度为O(nlgn)的得0分,复杂度为O(nk) 的得两分,总分是20分
- js时间-价格-排序案例____冒泡排序实例
- js时间-价格-排序案例____冒泡排序实例
- ver[SIZE]保存的是[iBegin,iBegin+SIZE-1]区间的值,且无重复,请以O(N)时间复杂度和O(1)空间复杂度进行排序
- N个大小不等的自然数排序,时间复杂度为O(n),空间复杂度为O(1)
- n个数,找出其中最小的k个数,写出代码,要求最坏情况下的时间复杂度不能高于O(n logk)
- 为什么比较排序时间复杂度是O(nlogN)
- Java实现选择排序和冒泡排序执行时间的比较
- Java数组排序(插入,选择,冒泡)+显示排序时间
- 排序问题:各种排序算法的时间复杂度 比较
- js时间-价格-排序案例____冒泡排序实例
- 题目:某公司有几万名员工,请完成一个时间复杂度为O(n)的算法对该公司员工的年龄作排序,可使用O(1)的辅助空间。