使用OC实现一个冒泡排序 函数定义如下: (NSArray *) sort:(NSArray *)unsortArray; 参数是没排好序的数组
答案:2 悬赏:30
解决时间 2021-03-15 05:03
- 提问者网友:樱花树下最美的约定
- 2021-03-14 11:30
用ios的oc语法写
最佳答案
- 二级知识专家网友:有钳、任性
- 2021-03-14 13:08
一定要自己实现冒泡吗?NSArray可以直接排序啊,给一个判定条件就可以了
如果按照你函数定义,unsortArray是一个immutable类型的数组,而你传递进来的又是一级指针,那么即使在内部完成排序的话也势必要返回另外一个autorelease数组,也就是说无法在原来的数组中进行
如果按照你函数定义,unsortArray是一个immutable类型的数组,而你传递进来的又是一级指针,那么即使在内部完成排序的话也势必要返回另外一个autorelease数组,也就是说无法在原来的数组中进行
全部回答
- 1楼网友:啵啵桃汀
- 2021-03-14 14:44
1.
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序
n个数,第1轮,比较n-1次,得到最大(或最小)数
余下的n-1个数,比较n-2次,得到排第二位的数
以此此类推,最后比较1次,确定最后两个数的大小
故总循环次数:1+2+...+n-1=(1+n-1)(n-1)/2=n(n-1)/2
因为冒泡排序是采用双重循环,因此时间复杂度为o(n^2);
2.arrays.sort()方法根据传出参数的长度的大小来判断用哪种排序方法,如果数组的长度小于7用冒泡排序,如果数组长度大于7,将数组分为两部分,前半部分和后半部分分别进行冒泡排序,最后再执行一次总的排序
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯