演算法一:氣泡排序
什麼是氣泡排序,如何進行氣泡排序?
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語言專門提供了一種構造型別來解決上述問題,這就是結構體,它允許內部的元素是不同型別的。二 ...