iOS開發 一些面試演算法總結

2021-06-18 23:24:43 字數 2289 閱讀 8821

由於最近需要面試,筆試的時候遇到了不同的演算法,上網搜了一些

這裡把常考到的常用排序演算法簡單彙總了下。

包括氣泡排序,簡單選擇排序,直接插入排序,希爾排序,堆排序和快速排序。

[objc]view plain

copy

//常用排序彙總

#include 

void

swap(

intint

*a, 

intint

*b);  

void

bubble_sort(

inta, 

intn);  

void

select_sort(

inta, 

intn);  

void

insert_sort(

inta, 

intn);  

void

shell_sort(

inta, 

intn);  

void

heap_adjust(

inta, 

inti, 

intn);  

void

heap_sort(

inta, 

intn);  

void

quick_sort(

inta, 

intlow, 

inthigh);  

intmain()  

;  //    bubble_sort(arr, 10);

//    select_sort(arr, 10);

//    insert_sort(arr, 10);

//    shell_sort(arr, 10);

//    heap_sort(arr, 10);

quick_sort(arr, 0, 9

);  

for(

inti = 

0; i < 10

; i++)  

return

0;  

}  //交換資料

void

swap(

intint

*a, 

intint

*b)  

//氣泡排序法

//時間複雜度o(n^2) 空間複雜度o(1)

void

bubble_sort(

inta, 

intn)  

}  }  }  

//簡單選擇排序

//時間複雜度o(n^2) 空間複雜度o(1)

void

select_sort(

inta, 

intn)  

}  if(min != i)  

}  }  //直接插入排序

//時間複雜度o(n^2) 空間複雜度o(1)

void

insert_sort(

inta, 

intn)  

a[j+1

] = temp;  

}  }  

//希爾排序

//時間複雜度為o(nlogn) 空間複雜度為o(1)

void

shell_sort(

inta, 

intn)  

a[j+gap] = temp;  

}  gap = (gap-1)/3

;  }  

}  //堆排序

//時間複雜度為o(nlogn) 空間複雜度為o(1)

void

heap_sort(

inta, 

intn)  

for(int

i = n-

1; i > 

0; i--)  

}  //構建大頂堆

void

heap_adjust(

inta, 

inti, 

intn)  

}  //快速排序

//時間複雜度為o(nlogn) 空間複雜度為o(logn) ~ o(n)

void

quick_sort(

inta, 

intlow, 

inthigh)  

swap(&a[low], &a[j]);  

if(i-

1>low) quick_sort(a, low, i-

1);  

if(j+11

, high);  

}  

一些簡單的面試演算法題?

header content type text html charset utf 8 for a 0 a 100 a 二位陣列排序 arr array array id 1,name lisi age 20 array id 2,name lisi age 50 array id 3,name l...

面試演算法題總結 一

華為面試題 寫乙個程式,要求功能 求出用1 2 5 這三個數不同個數組合的和為100 的組合個數。如 100 個1 是乙個組合,5 個1 加19 個5 是乙個組合。請用c 語言寫。答案 最容易想到的演算法是 設x 是1 的個數,y 是2 的個數,z 是5 的個數,number 是組合數 注意到0 x...

面試演算法題總結 一

思想,每次隨機取乙個數,將大於其的放在右邊,小於或等於其的放在左邊,如此遞迴 def quicksort arr if len arr 1or len list filter lambda a a arr 0 arr len arr return arr middle random.choice r...