標籤:objective-c ios開發 演算法 冒泡排序 索引
二分法:平均時間複雜度:O(log2n)int halfFuntion(int a[], int length, int number) {int start = 0;int end = length - 1;int index = 0;while(start < end) {index = start + (end - start)/2if(a[index] == number){return index; } else if(a[index] < number){start = index + 1; } else{end = index - 1; } }return index; }
冒泡排序:
/**
平均時間複雜度:O(n2)
空間複雜度:O(1) (用於交換)
穩定性:穩定
*/
void paoFuntion(int a[], int length){
for (int i = 0; i < length - 1; i++) {
for (int j = 0; j < length - 1 - i; j++) {
if (a[j] > a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
選擇排序:
/**
平均時間複雜度:O(n2)
空間複雜度:O(1) (用於交換和記錄索引)
穩定性:不穩定 (比如序列【5, 5, 3】第一趟就將第一個[5]與[3]交換,導致第一個5挪動到第二個5後面)
*/
void chooseFuntion(int a[],int length){
for (int i = 0; i < length - 1; i++) {
for (int j = i + 1; j < length ; j++) {
if (a[i] > a[j]) {
int temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
}
iOS常見演算法(二分法 冒泡 選擇)