從網上找了一些排序方法,可能以後用的著,自己先編寫一下,然後存下來
1.冒泡法
思想:1.從a[0]到a[n],相鄰的兩個數進行比較,如果滿足條件則交換,如此反覆。
2.這種演算法要經過n-1輪的大迴圈。
以下是維基百科思想:
比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
針對所有的元素重複以上的步驟,除了最後乙個。
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
#include
#include
#define n 8
void bubblesort(int r,int n);
int main( )
;bubblesort(a, n);
for(int i=0;ir[j])
}2.選擇排序
思想:一次選定陣列中的每乙個數,記下當前位置並假設它是從當前位置開始後面數中的最小數min=i,從這個數的下乙個數開始掃瞄直到最後乙個數,並記錄下最小數的位置min,掃瞄結束後如果min不等於i,說明假設錯誤,則交換min與i位置上數。、
設陣列內存放了n個待排數字,陣列下標從1開始,到n結束。
i=1從陣列的第i個元素開始到第n個元素,尋找最小的元素。(具體過程為:先設arr[i]為最小,逐一比較,若遇到比之小的則交換)
將上一步找到的最小元素和第i位元素交換。
如果i=n-1演算法結束,否則回到第3步
#include
#include
#define n 8
void choicesort(int r,int n);
int main( )
;choicesort(a, n);
for(int i=0;ir[j])
if(i!=minindex)//判斷是否相等}}
3 插入排序方法
思想:它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。
重點關注從後向前的排序方法
從第乙個元素開始,該元素可以認為已經被排序
取出下乙個元素,在已經排序的元素序列中從後向前掃瞄
如果該元素(已排序)大於新元素,將該元素移到下一位置
重複步驟3,直到找到已排序的元素小於或者等於新元素的位置
將新元素插入到該位置中
重複步驟2
#include
#include
#define n 8
void insertsort(int r,int n);
int main()
;insertsort(a,n);
for(int i=0;i0 && temp < r[j-1] ; j--)//這一步解決從後向前排序的問題}}
NSArray排序的一些方法
大體上,oc中常用的陣列排序有以下幾種方法 sortedarrayusingselector sortedarrayusingcomparator sortedarrayusingdescriptors 1 簡單排序 sortedarrayusingselector 如果只是對字串的排序,可以利用s...
排序 一些排序的總結
假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,即在原序列中,ri rj,且ri在rj之前,而在排序後的序列中,ri仍在rj之前,則稱這種排序演算法是穩定的 否則稱為不穩定的。排序演算法如果是穩定的,那麼從乙個鍵上排序,然後再從另乙個鍵上排序,第乙個...
jquery一些方法
1,追加元素 prepend 在被選元素的開頭插入內容 after 在被選元素之後插入內容 before 在被選元素之前插入內容 引數可以為string 也可以為html 2,離開頁面時,提示 不是jquery方法 3,選擇元素 匹配id以aaa開頭 select id aaa 匹配id以aaa結尾...