//联系人:石虎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;
}
}
}
}
谢谢!!!