記錄一些常用的演算法,包括實際應用的。
首先是氣泡排序。這個一般在一些濾波演算法的時候可能會用到。
氣泡排序:
#include
intmain()
// 氣泡排序
for(j =
1; j <= n-
1; j++
)//n個數處理n-1趟}}
for(i =
0;i < n;i++
)return0;
}
冒牌排序的演算法的基本思維是:
1.對存放序列的陣列的第乙個元素到最後乙個元素,依次對相鄰的兩個元素進行比較,如果前者大,則調換順序;
2.第一趟結束後,則最大的數就存放在最後乙個元素了,然後從第乙個數到倒數第二個數,依次進行相鄰兩個數比較大小,若前者大,則調換順序。
3.重複操作。
哈哈哈哈想當初面試的時候,面試hr問我知道那些排序,答曰:氣泡排序。然後讓我講講氣泡排序咋實現的,然後我就不知道了。
應用:中值濾波。中值濾波就是對乙個序列的數,選取中間的數作為最終輸出。因此首先需要對序列數進行排序。
for
(cnt=
0; cnt)// 氣泡排序法
for(k=
0; k<
5; k++)}
}}adc_value[0]
= value_buf[0]
[(n-1)
/2]*
3258
>>12;
adc_value[1]
= value_buf[1]
[(n-1)
/2]*
3258
>>12;
adc_value[2]
= value_buf[2]
[(n-1)
/2]*
3258
>>12;
adc_value[3]
= value_buf[3]
[(n-1)
/2]*
3258
>>12;
adc_value[4]
= value_buf[4]
[(n-1)
/2]*
3258
>>
12;
上面是五個通道的取樣值,選取中位數。
選擇排序:
選擇排序演算法的步驟:
1.從存放序列數的陣列中找出最小數的下標,然後將最小值與第乙個數交換位置;
2.除第乙個數之外,再從剩餘的n-1個數,找出最小數的下標,將次數與第二個數交換位置;
3.重複操作;
#include
intmain()
for(i =
0; i < n-
1; i++
)// 處理n-1趟;}if
(k != i)
}for
(i =
0;i < n;i++
)return0;
}
有序數列的插入演算法:
將某個資料插入都乙個有序的數列中,使其仍然有序;
#include
#define n 10
intmain()
;// 9個數,空出乙個
int i,j,x;
scanf
("%d"
,x);
if(x > a[n-2]
)else
//查詢待插位置;
for(j=n-
2; j>=i;j--
) a[i]
= x;
// 插入帶插入的數;
}for
(i =
0;i < n;i++
)return0;
}
插值排序:
#include
#define n 10
intmain()
else
// 一下查詢帶插值位置
for(k = j-
1; k >= i;k--
)//迴圈從原最後乙個數開始直到待插值位置上的數依次往後移一位;
a[i]
= x;}}
for(i =
0;i < n;i++
)return0;
}
查詢:
查詢的思路就是將待查詢的量與陣列中的每乙個元素進行比較,若有乙個元素與之相等,則找到,如果沒有,則沒找到;
順序查詢:
順序查詢的思路就是將要查詢的元素依次與陣列內的每乙個元素相比較,如果遇到相等的,則說明找到了,反之,則說明沒有找到;
#include
#define n 10
intmain()
;int i,x,flag =0;
scanf
("%d"
,&x)
;for
(i =
0; i < n; i++)}
if(0== flag)
return0;
}
二分法查詢:
#include
#define n 11
intmain()
;int x,high,low,mid;
scanf
("%d"
,&x)
; high = n-
1; low =
0; mid =
(high + low)/2
;while
(x != a[mid]
&& high > low)
else
mid =
(high + low)/2
;}if(x == a[mid]
)else
return0;
}
C語言MYSQL api歸納
mysql affected rows 上次update delete或insert查詢更改 刪除 插入的行數。mysql autocommit 切換 autocommit模式,on off mysql change user 更改開啟連線上的使用者和資料庫。mysql charset name 返...
C語言常用演算法
一 計數 求和 求階乘等簡單演算法 此類問題都要使用迴圈,要注意根據問題確定迴圈變數的初值 終值或結束條件,更要注意用來表示計數 和 階乘的變數的初值。例 用隨機函式產生100個 0,99 範圍內的隨機整數,統計個位上的數字分別為1,2,3,4,5,6,7,8,9,0的數的個數並列印出來。本題使用陣...
C語言常用演算法
收集一些語法 演算法方面的內容。用 顯示乙個菱形 posted 2010 06 21 09 09 齊心 閱讀 29 編輯 從鍵盤輸入乙個字串,將其中的大寫字母變小寫字母,小寫字母變大寫字母,並輸出 摘要 題目很簡單,但是要求用scanf函式逐個輸入字元儲存在字元陣列中,對於新手有一些難度。閱讀全文 ...