交換法排序:第一輪比較,參與的數有n個,與後面的數進行比較,若後面的數大,則交換後面這個數與第乙個數的位置;然後進行第二輪比較,參與的數為n-1,再按上述方法進行比較。
主要**:
for
(i=0
;i1;i++
)//輪次
}}
選擇法排序:假設未排序陣列的第乙個數(下標為i)為最大(小)值,記錄其下標賦給變數k;跟其後的數依次比較(下標從i到i+1)。發現有比基數大的值或小的值就記錄此數的下標賦給k。若k值已更新,則交換未排序陣列中第乙個數和下標為k的最值。
主要**:
for
(i=0
;i1;i++)}
if(k!=i)
//若最大數下標不在下標位置i
}
冒泡法排序:將相鄰兩個數比較,將大的(小的)調到前頭。結果從後往前,大數下沉,小數上浮;小數下沉,大數上浮。兩兩相鄰比較,如果發現前乙個數比後乙個數大(小)就交換兩數。
主要**:
for
(i=0
;i1;i++
)for
(j=0
;j1-i;j++
)
順序查詢:利用迴圈掃瞄整個陣列,依次將每個元素與要找的數比較;若找到,停止迴圈,輸出其值;若所有元素都比較後未找到,則結束迴圈,輸出未找到。
主要**:
int
linsearch
(long num[i]
,long x,
int n)
//x為要找的數
return-1
;//若未找到返回-1
}}
折半查詢:查詢是從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則結束並返回中間元素的下標;如果這個數大於或小於中間元素,則在陣列大於或小於中間元素的那一半中查詢,而且跟開始一樣從中間元素開始比較。
主要**:
int
binsearch
(long num,
long x ,
int n)
else
if(x)else
}return-1
;}
C語言 排序和查詢
排序 是把一系列無序的資料按照特定的順序重新排列為有序序列的過程 特點 效能比較低,但是易於理解,是選擇法的基礎 for i 0 i n 1 i 特點 執行次數少,不過較難理解 void datesort int score,int n if k i 對資訊進行排序時,通常只使用資訊的乙個子項作為鍵...
C語言 排序和查詢
一 氣泡排序 演算法特點 兩層迴圈外層控制排序的趟數,記憶體控制相鄰元素兩兩比較的次數。n個數共需n 1趟,i 1 ioid bubblesort int p,int n 二 快速排序 有左起點和右終點,還有乙個標準點 任選 先從右端開始尋找比標準小的值,再從左端選大於標準的值,然後將其交換,逐個進...
Go語言排序和查詢
排序操作主要都在 sort包中,匯入就可以使用了,import sort sort.ints對整數進行排序,sort.strings對字串進行排序,sort.float64s對浮點數進行排序 package main import fmt sort func testsort var sot str...