排序演算法和查詢演算法

2022-06-30 06:48:10 字數 2371 閱讀 9975

法是用來解決常見問題的方法

同乙個問題可以採用多種方法解決,不同

方法適用於不同的環境

排序指的是把一組數字按照某種順序排列好

排序演算法分很多次重複執行,每次負責把

乙個數字放在合適的位置上

為了實現以上效果可以先確定數字然後查詢

位置也可以先確定位置然後查詢數字

通過不斷調整兩個數字的相互順序最終把

合適的數字放在合適的位置上

1.氣泡排序演算法

每次把乙個數字放在最前邊或最後邊的

位置上不斷調整相鄰兩個數字的順序最終把乙個

數字放在最前或最後的位置上

2.選擇排序演算法

每次把乙個數字放在最前邊或最後邊

的位置上

用選定位置裡的數字和所有其他數字做

順序調整,最終把合適的數字放在

這個位置裡

3.插入排序

把沒有排好序的數字中最前面或最後面的

數字插入到排好序的數字中合適的位置上

重複這個過程直到把所有數字都放在合適

的位置上

每次把要插入的數字和它前面或後面的數字

進行順序調整,重複這個過程直到它

被放在合適的位置上

4.快速排序

從所有數字的最左邊或最右邊選擇乙個數字

作為基準數字,把它放在合適的位置上

對基準數字和所有其他數字依次進行順序

調整,把比它小的都放在一邊比它大

的放在另一邊

對未處理的數字中兩邊的數字進行順序調整,

調整後把其中不是基準數字的數字排除在

未處理範圍之外

重複以上過程直到所有數字都被排除在未

處理數字範圍外。這個時候基準數字就被

放在合適的位置上了

對左右兩部分數字重複以上過程直到所有數字

都被放在合適的位置上

/*

氣泡排序演算法演示

*/#include

void quick_sort(int *p_num, int

size)

while (p_start if (*p_start == base

)

else

}quick_sort(p_num, p_start -p_num);

quick_sort(p_start + 1, p_num + size - 1 -p_start);

}void bubble_sort(int *p_num, int

size)

}}}/*

void bubble_sort(int *p_num, int size)

}}}*/

void choice_sort(int *p_num, int

size)

}}}/*

void choice_sort(int *p_num, int size)

}}}*/

void insert_sort(int *p_num, int

size)

else}}

}int

main() ;

int num = 0

;

//bubble_sort(arr, 9);

//choice_sort(arr, 9);

//insert_sort(arr, 9);

quick_sort(arr, 9

);

for (num = 0;num <= 8;num++)

printf("\n

");return0;

}

查詢演算法可以從一組數字裡找到某乙個數字

1.順序查詢

按順序把每個數字和要查詢的數字做對比

直到找到為止

如果數字之間沒有規則就只能採用按順序

查詢的方法

2.折半查詢

只能從有順序的一組數字中找到某個數字

每次用中間位置的數字和要查詢的數字

做對比,這樣就可以排除一半的數字

重複這個過程直到找到結果

/*

查詢演算法演示

*/#include

int *half_search(const

int *p_num, int size, int

num)

else

if (*p_mid >num)

else

}return

null;

}int

main() ;

int *p_num = half_search(arr, 8, 44

);

if(p_num)

return0;

}

排序演算法和查詢

排序和查詢例項 內部排序 交換式 冒泡 快速排序法 選擇式 選擇 堆排序 插入 插入 謝爾 二叉樹 式排序 外部排序 合併 直接合併排序 隨機產生陣列 public int getarray int n for int i 0 i 7.2選擇排序 選擇排序法 class xuanze if i mi...

各種排序演算法和查詢演算法

自己實現了一遍氣泡排序 選擇排序 插入排序,留個念想 氣泡排序 簡單來說就是從陣列末端冒泡到陣列當前位置 void bubblesort unsigned char data,unsigned short length 選擇排序 當前位置之後的所有數跟當前位置的數比較,得到最小的數到當前位置 voi...

排序演算法和查詢演算法總結

1.氣泡排序 解釋 所謂氣泡排序,就是如同水裡的泡泡一樣,將合適的值一次次往上冒,直到所有資料全部處理完成。在資料中的解釋就是 從第乙個數開始,每次都將前乙個數與後乙個數作比較,如果前乙個數大於後乙個數,則將兩者交換位置 否則不交換 此時,後乙個數值已變化,然後再將後乙個數與後後乙個數作比較,重複操...