C語言 排序和查詢

2021-10-25 10:21:43 字數 1242 閱讀 5145

交換法排序:第一輪比較,參與的數有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...