iOS開發輕鬆搞定C語言面試 演算法

2021-07-04 06:14:52 字數 2842 閱讀 5569

演算法一:氣泡排序

什麼是氣泡排序,如何進行氣泡排序?

1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應 該會是最大的數。

3.針對所有的元素重複以上的步驟,除了最後乙個。

4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

思路:

1.先分析如何比較

2.找出比較的規律比較完一次之後第二次比較會少一次

3.列印倒三角(改變內迴圈的初始化表示式,讓內迴圈的初始化表示式隨著外迴圈的i值變化)

4.列印需要比較的角標

5.比較並交換位置

6.將常量替換為變數(length)

對陣列進行排序(從小到大)

//已知乙個無序的陣列, 裡面有6個元素, 要求對陣列進行排序(從小到大)

int nums[6] = ;

intlength = sizeof(nums) / sizeof(nums[0]);

// 兩層迴圈體

for (int i = 0; i < length; i++)

for (int i = 0; i < length - 1; i++) }}

printf("----------\n");

for (int i = 0; i < length; i++)

return

0;}

對陣列進行排序(從大到小)

// 已知乙個無序的陣列, 裡面有5個元素, 要求對陣列進行排序(從大到小)

int nums[6] = ;

intlength = sizeof(nums) / sizeof(nums[0]);

// 兩層迴圈體

for (int i = 0; i < length; i++)

for (int i = 0; i < length - 1; i++) }}

printf("----------\n");

for (int i = 0; i < length; i++)

return

0;}

氣泡排序的演算法優化:

在ios開發中,優化**以及封裝是非常重要的,好的程式設計習慣能夠鍛鍊好的程式設計思想。下面將氣泡排序進

// 函式宣告

void selectsort(int nums, int length);

void printarray(int nums, int length);

//void swap(int v1, int v2);

void swap(int nums, int i, int j);

void bubblesort(int nums, int length);

int main(int argc, const char * argv)

; int length = sizeof(nums) / sizeof(nums[0]);

printarray(nums, length);

bubblesort(nums, length);

printf("----------------\n");

printarray(nums, length);

return 0;

// 遍歷陣列

void printarray(int nums, int length) }

void bubblesort(int nums, int length) }

} }// 選擇排序

void selectsort(int nums, int length) }

}// 基本資料型別作為函式的引數, 是值傳遞, 在函式中修改形參不會影響實參的值

// 交換兩個數的值

void swap(int nums, int i, int j)

演算法

二、選擇排序

選擇排序(selection sort)是一種簡單直觀的排序演算法。

它的工作原理如下:

首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小元 素,然後放到排序序列末尾。以此類推,直到所有元素均排序完畢。

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

由於最近需要面試,筆試的時候遇到了不同的演算法,上網搜了一些 這裡把常考到的常用排序演算法簡單彙總了下。包括氣泡排序,簡單選擇排序,直接插入排序,希爾排序,堆排序和快速排序。objc view plain copy 常用排序彙總 include void swap intint a,intint b...

C語言面試演算法題(二)

1.寫乙個函式,它的原形是int continumax char outputstr,char intputstr 功能 在字串中找出連續最長的數字串,並把這個串的長度返回,並把這個最長數字串付給其中乙個函式引數outputstr所指記憶體。例如 abcd12345ed125ss123456789 ...

iOS開發分分鐘搞定C語言 結構體和列舉

一 結構體 在前面的陣列分享中,把同一型別的資料進行儲存通過陣列,我們可以用陣列來表示這個整體,但是陣列有個特點 內部的每乙個元素都必須是相同型別的資料。那麼如何通過乙個方式將不同型別的資料進行儲存呢?為此,c語言專門提供了一種構造型別來解決上述問題,這就是結構體,它允許內部的元素是不同型別的。二 ...