從0開始學算法8:排序和查找

一、排序

1.什麼是排序

排序(Sort)是將無序的記錄序列(或稱文件)調整成有序的序列。

2.常見排序方法

  • 冒泡排序
    冒泡排序是一種簡單的排序算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。

  • 選擇排序
    工作原理爲,首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小元素,然後放到排序序列末尾。以此類推,直到所有元素均排序完畢。

  • 插入排序
    對於未排序數據,在已排序序列中從後向前掃描,找到相應位置並插入。插入排序在實現上,通常在從後向前掃描過程中,需要反覆把已排序元素逐步向後挪位,爲最新元素提供插入空間。

  • 快速排序
    從數列中挑出一個元素,稱爲 “基準”(pivot),重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面(相同的數可以到任一邊)。在這個分區退出之後,該基準就處於數列的中間位置。這個稱爲分區(partition)操作。遞歸地(recursive)把小於基準值元素的子數列和大於基準值元素的子數列排序。

二、查找

1.定義

查找(或檢索)是在給定信息集上尋找特定信息元素的過程。

2.二分法查找

當數據量很大適宜採用該方法。採用二分法查找時,數據需是排好序的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章