日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

几句话描述简单算法——排序与搜索

發布時間:2025/7/14 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 几句话描述简单算法——排序与搜索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、排序

1)桶排序

準備大量的木桶,用木桶的標號(數組下標)作為數據,按照木桶標號的順序進行排序。

2)選擇排序

從“待排序部分”找到最小值(或最大值),讓“待排序部分”的起始位置向后移動。

3)冒泡排序

比較相鄰的兩個數據,把這兩個數據按照大小關系正確的交換排列。

4)插入排序

不斷地把數據插入已排序的部分數據列,里面恰當的位置。

5)歸并排序

分兩步走,先了解下歸并的概念。歸并:把“幾個已排序的數據列”合并成“一個已排序的數據列”。

歸并排序由分割和歸并兩個構成。

6)希爾排序

希爾排序就是把數據以一定的間隔進行分組,并且對每個組進行的排序。

7)快速排序

從數據列中任意取出一個值P(基準值),再把“>P”和“<P”的值分離出來,得到新的數據列,P在數據列中的最終位置就確定了。

?

二、搜索

1)線性搜索

線性搜索就是從起始數據開始,按順序排除,比較每個數據是否與目標數據一致。

2)二分搜索

二分搜索的前置條件是數據列已經排好序。

二分搜索專注數據列中間位置M1,將數據列分為左右部分,如果數據一致就結束;否則縮小范圍,在左邊或右邊數據列重復查找中間位置M2等,直到結束。

3)哈希搜索

1. 創建哈希表,利用哈希函數求得一個哈希值,將哈希值作為下標。

2. 哈希沖突,很有可能會出現哈希值相同,則可以在哈希值中保存一個單項列表(PHP中可以用Array)。

3. 通過哈希值限定到特定的分組里,實現高效搜索。

4)字符串搜索

“子字符串是數組(多個數據)”,將子字符串的每個字符和目標字符串中的字符一一比較,如果不匹配,重新匹配,下一次開始匹配的位置,就是在當前位置后移一位。

5)KMP搜索

KMP算法可以根據子字符串出現不匹配的位置,決定下一次開始比較字符的位置。

6)BM搜索

BM算法從子字符串的末尾字符開始匹配,根據不匹配的字符和位置信息,決定下一次匹配開始的位置。

?

?

參考資料:

寫給大家看的算法書

?

轉載于:https://www.cnblogs.com/strick/p/6428476.html

總結

以上是生活随笔為你收集整理的几句话描述简单算法——排序与搜索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。