iOS 常见算法(二分法、冒泡 、选择)~性能

//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄

一、二分法:

/**

循环的基本次数是log2N,所以:平均时间复杂度:O(log2n)

辅助空间是常数级别的所以:空间复杂度:O(1)

稳定性:稳定

*/

inthalfFuntion(inta[],intlength,intnumber){

intstart =0;

intend = length -1;

intindex =0;

while(start < end) {

index = start + (end - start)/2;

if(a[index] == number){

returnindex;

}elseif(a[index] < number){

start = index +1;

}else{ end = index -1;

}

}

returnindex;

}

二、冒泡排序:

/**

平均时间复杂度:O(n2)

空间复杂度:O(1) (用于交换)

稳定性:稳定

*/

voidpaoFuntion(inta[],intlength){

for(inti =0; i < length -1; i++) {

for(intj =0; j < length -1- i; j++) {

if(a[j] > a[j+1]) {

inttemp = a[j];

a[j] = a[j+1];

a[j+1] = temp;

}

}

}

}

三、平均时间复杂度:

/**

平均时间复杂度:O(n2)

空间复杂度:O(1) (用于交换和记录索引)

稳定性:不稳定(比如序列【5,5,3】第一趟就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)

*/

voidchooseFuntion(inta[],intlength){

for(inti =0; i < length -1; i++) {

for(intj = i +1; j < length ; j++) {

if(a[i] > a[j]) {

inttemp = a[j];

a[j] = a[i];

a[i] = temp;

}

}

}

}

谢谢!!!

你可能感兴趣的:(iOS 常见算法(二分法、冒泡 、选择)~性能)