?

排序算法性能分析及基數排序算法的應用

2017-09-11 12:59張震
時代農機 2017年6期
關鍵詞:關鍵字級別排序

張震

(大連海洋大學,遼寧 大連 116300)

排序算法性能分析及基數排序算法的應用

張震

(大連海洋大學,遼寧 大連 116300)

在信息化高度發達的今天,工作中資料整理仍然涉及到手工排序。文章對各種排序算法的性能進行了比較。通過實例演示,闡述了基數排序在資料整理中的應用,以提高手工排序的效率。

排序算法;基數排序;性能分析

近年來,教師崗位考核中經常涉及到收取業績材料,這些材料必須按照統一的編號管理,形成一致性檔案,便于在審核過程中對資料進行查找。面對來自于不同部門、不同級別教師的大量資料,如何快速、有效地整理顯然非常必要了。在實際工作中主要是通過查找、編號、排序對資料進行整理的。選擇一種快速高效的排序方法能提高資料整理的效率?;鶖蹬判蚴潜姸嗯判蛩惴ㄖ蟹浅_m合手工操作的高效算法。

1 排序算法分析

通常采用的排序方法有:直接插入排序、簡單選擇排序、快速排序、基數排序等。

(1)直接插入排序的基本思想是:每一趟將一個待排序的記錄,按其關鍵字值的大小插入到已經排序的部分文件中適當位置上,直到全部插入完成。算法的時間復雜度是O(n2)。

(2)簡單選擇排序的基本思想是:每步從待排序的記錄中選出關鍵字最小的記錄(檔案),按順序放在已排序的記錄(檔案)序列的最后,直到全部排完為止。算法的時間復雜度是O(n2)。

(3)快速排序的基本思想是:在待排序的n個記錄中任取一個記錄(通常取第一個記錄),把該記錄放入適當位置后,數據序列被此記錄劃分成兩部分。所有關鍵字比該記錄關鍵字小的記錄放置在前一部分,所有比它大的記錄放置在后一部分,并把該記錄排在這兩部分的中間(稱為該記錄歸位),這個過程稱作一趟快速排序。之后分別對分割所得兩個子序列“遞歸”進行快速排序??焖倥判虻臅r間復雜度為O(nlog2n)。

(4)基數排序的基本思想是:一般地,記錄R[i]的關鍵字R[i].key是由d位數字組成,即kd-1kd-2…k0,每一個數字表示關鍵字的一位,其中kd-1為最高位,k0是最低位,每一位的值都在0≤ki<r范圍內,其中r稱為基數。排序時先按最高位的值對記錄進行排序,在此基礎上,再按次高位進行排序,依此類推。由高位向低位,每趟都是根據關鍵字的一位并在前一趟的基礎上對所有記錄進行排序,直至最低位,則完成了基數排序的整個過程?;鶖蹬判虻臅r間復雜度為O(d(n+r))。

用三組無序數據分別應用四種排序方法進行手工排序,則數據移動的次數反映排序的快慢。實驗數據如表1所示:

表1 移動次數比較

由表1中數據可以看出,基數排序移動數據的次數最少,所用的時間最短,說明在手工操作中是可行的。而且在所有排序方法中只有基數排序是不需要進行關鍵字比較的,整個排序過程中只是通過數據的“分配”和“收集”就可實現數據的排序。

2 基數排序算法在檔案整理過程中的實現

在實際工作中,首先對檔案資料編號,編號規則是部門號+級別號+工號(例如:050812),編號位數依照實際情況確定,這里分別用兩位數來代表部門號、級別號,用三位數代表工號,組成七位數字的檔案編號。排序中不是嚴格按照編號的每一位來操作,而是按照檔案編號的組成部分為關鍵字來進行排序。

(1)根據部門編號的兩位數字對檔案進行分組,分組后再順序收集。此操作完成后檔案材料就按部門不同有序排列,并且同一部門的材料連續排列在了一起。

(2)根據級別號的兩位數字對檔案進行分組,分組結束后在順序收集。此操作完成后不僅實現了檔案材料按級別有序排列,而且同一級別的檔案材料按部門不同有序排列。表2以一組數據為例,顯示兩次排序結果。

表2 排序過程

3 基數排序實現過程中注意的問題

基數排序過程類似人們生活中撲克牌整理過程。其實現過程分為高位優先和地位優先兩種。表2演示的是高位優先過程。地位優先過程是排序時先按最低位的值對記錄進行排序,在此基礎上,再按次低位進行排序,依此類推。由低位向高位,每趟都是根據關鍵字的一位并在前一趟的基礎上對所有記錄進行排序,直至最高位,則完成了基數排序的整個過程。選擇低位優先過程還是高位優先過程取決于自己期望的排序結果。實際操作過程中不必嚴格按照從高位到低位或從低位到高位的順序推進??梢愿鶕谕慕Y果順序靈活選擇每一趟分組的依據。例如,期望資料宏觀上按部份好排列,部門號相同的資料再按級別排列,則可以第一趟按級別分組后收集,第二趟按部門號分組后收集,就可以得到期望的結果。若期望宏觀上按級別排序,級別相同時按部門排序,則可以第一趟按部門號分組后收集,第二趟按級別分組后收集,表2描述的就是這個過程。

4 結語

在信息技術高度發展的今天,資料的手動整理仍然是人們工作中的一部分,要快速、高效地對眾多資料進行一致性整理,沒有好的方法是不行的?;鶖蹬判蚍椒ú粌H效率高,而且較其它方法,不需要進行關鍵字的比較,非常適合手工操作,是資料整理中切實有效地方法。

[1]伍一,孔凡輝,孫柏祥.數據結構應用教程,第二版[M].北京:清華大學出版社,2015.

[2]項麗萍.數據結構中各種排序算法的比較與分析[J].太原城市職業技術學院學報,2008,(12):112.

[3]何宇晨,嚴晶濤,柏云,等.排序算法的性能比較及基數排序在數據分類中的應用[J].福建電腦,2011,(11):90.

Performance Analysis of Sequencing Algorithm and App lication of Cardinal Number Sorting Algorithm

ZHANG Zhen
(Dalian Ocean University,Dalian,Liaoning 116300,China)

In the highly developed information era,the work of data processing is still related to manual sorting.This paper compares the performance of various sorting algorithms.Through the example demonstration,the application of cardinality sorting in data collation is described to improve the efficiency of manual sorting.

sorting algorithm;cardinality ranking;performance analysis

TP301.6

A

2095-980X(2017)06-0036-01

2017-05-08

張震(1972-),女,講師,主要從事計算機科學與計算專業教學工作。

猜你喜歡
關鍵字級別排序
履職盡責求實效 真抓實干勇作為——十個關鍵字,盤點江蘇統戰的2021
排序不等式
痘痘分級別,輕重不一樣
恐怖排序
成功避開“關鍵字”
節日排序
邁向UHD HDR的“水晶” 十萬元級別的SIM2 CRYSTAL4 UHD
新年導購手冊之兩萬元以下級別好物推薦
你是什么級別的
智能垃圾箱
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合