幾種簡單的查詢和排序思想

2021-07-15 10:34:35 字數 993 閱讀 9789

a).適用於有序陣列,效率比線性查詢高。

b).有序陣列較之無序陣列,查詢速度快,但插入效率低,因插入新資料時,需要挪動後邊的資料以騰開空間;

而刪除效率都低。。因都需向前移動來填補空缺的資料項。

示例程式:

//二分查詢,針對有序陣列

public static int binarysearch(int forsearch) else if (lowerbound > upperbound) else if (b[curin] < forsearch) else }}

比較兩個隊員(a,b),如果左邊的隊員(a)高,則兩隊員交換位置;向右移動乙個位置(b),比較下面兩個隊員(b,c),因此最後最大的資料項「冒泡」到陣列的頂端。

掃瞄整個陣列,找到最矮的隊員,將其和0號隊員互換位置;從1號位置開始掃瞄全隊,找到最矮的,放在 1號位置,一直持續到所有隊員都排定。

如圖所示:

所謂的快速排序的思想就是,首先把陣列的第乙個數拿出來做為乙個key,在前後分別設定乙個i,j做為標識,然後拿這個key對這個陣列從後面往前遍歷,及j--,直到找到第乙個小於這個key的那個數,然後交換這兩個值,交換完成後,我們拿著這個key要從i往後遍歷了,及i++;一直迴圈到i=j結束,當這裡結束後,我們會發現大於這個key的值都會跑到這個key的後面,不是的話就可能你寫錯了,小於這個key的就會跑到這個值的前面;然後我們對這個分段的陣列再實行遞迴呼叫就可以完成整個陣列的排序。

幾種排序演算法的思想

一 氣泡排序 已知一組無序資料a 1 a 2 a n 需將其按公升序排列。首先比較a 1 與a 2 的值,若a 1 大於a 2 則交換兩者的值,否則不變。再比較a 2 與a 3 的值,若a 2 大於a 3 則交換兩者的值,否則不變。再比較a 3 與a 4 依此類推,最後比較a n 1 與a n 的值...

幾種排序演算法思想

一 氣泡排序 已知一組無序資料a 1 a 2 a n 需將其按公升序排列。首先比較a 1 與a 2 的值,若a 1 大於a 2 則交換兩者的值,否則不變。再比較a 2 與a 3 的值,若a 2 大於a 3 則交換兩者的值,否則不變。再比較a 3 與a 4 依此類推,最後比較a n 1 與a n 的值...

幾種排序和查詢方法

本題要求將給定的n個整數從小到大排序後輸出。輸出時相鄰數字中間用乙個空格分開,行末不得有多餘空格。include define maxn 10 intmain 從後往前兩兩比較相鄰元素的值 for i 1 i for i 0 i return0 本題要求將給定的n個整數從小到大排序後輸出。輸出時相鄰...