計算機程序設(shè)計中的排序問題分析及相關(guān)闡述
本文選題:計算機 切入點:程序設(shè)計
李潤榮
摘要:計算機應(yīng)用程序設(shè)計通常是由專業(yè)的程序開發(fā)人員利用各種計算機程序設(shè)計語言開發(fā)某些功能程序。程序設(shè)計一般是為了達到某種功能,因此其目的性功能性很強。在程序設(shè)計時,影響程序質(zhì)量的因素較多,排序問題的處理是其中的一個。因此,要提高程序的質(zhì)量,就有必要加強計算機程序設(shè)計過程中有關(guān)排序問題,且合理處理。本文主要討論了計算機程序設(shè)計的開發(fā)過程,根據(jù)計算機程序設(shè)計的具體要求,有效解決程序設(shè)計中有關(guān)排序的問題。增強計算機程序設(shè)計功能,促進有關(guān)行業(yè)的快速發(fā)展。
關(guān)鍵詞:計算機;程序設(shè)計;快速排序
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2016)27-0202-02
計算機程序設(shè)計是計算機軟件開發(fā)的核心部分,其質(zhì)量的高低影響著軟件投產(chǎn)運用。而計算機程序設(shè)計時,有關(guān)排序問題的處理是計算機軟件開發(fā)的重要部分,其處理方法又很繁瑣。所以排序問題能否優(yōu)化處理,直接影響軟件的開發(fā)質(zhì)量。因此,在做計算機程序設(shè)計時,必須加強軟件排序問題綜合考慮,而且要做到計算機程序設(shè)計時涉及的排序情況心中有數(shù),并選用最優(yōu)化的排序方法,最終完美解決計算機程序設(shè)計時的排序問題。為提高軟件開發(fā)質(zhì)量,并為全面提升軟件的功能打下堅實的基礎(chǔ)。從而加快計算機程序開發(fā)行業(yè)的發(fā)展。
1 計算機程序設(shè)計中排序問題的概述
計算機程序設(shè)計的目的是為了給有關(guān)的計算機軟件正常執(zhí)行提供保障。然而,排序問題已對計算機程序設(shè)計的質(zhì)量產(chǎn)生了較大的影響,這個問題也是因繞著軟件開發(fā)人員的大事。因此,加強計算機程序設(shè)計時有關(guān)排序問題的分析及妥善處理是很重要的事情。針對計算機程序設(shè)計時有關(guān)排序問題研究發(fā)現(xiàn),其有如下特征。
(1)復(fù)雜性。計算機軟件開發(fā)是為了實現(xiàn)某些功能,這就決定了計算機程序設(shè)計需要涉及很多方面,因此其排序的操作過程時的有關(guān)數(shù)據(jù)也很多很雜,這就直接導(dǎo)致了計算機程序設(shè)計時排序問題復(fù)雜性。雖然我們可以選用最佳的程序設(shè)計方案,但是因為軟件本身的強大功能的要求決定了計算機程序設(shè)計時排序問題依然是復(fù)雜的。
(2)不確定性。在具體的計算機程序設(shè)計過程,程序運行時有時需要對有關(guān)數(shù)據(jù)或記錄進行修改等各種的情況的發(fā)生,這些操作有時會引起程序的排序問題發(fā)生改變,這樣的情況時有發(fā)生,因而也就加大計算機程序設(shè)計時排序問題的不確定性。
(3)多約束性。排序問題對計算機程序設(shè)計的功能影響是很明顯的。在實際的軟件開發(fā)時,各種數(shù)據(jù)資源是相互約束及制約的,數(shù)據(jù)之間的這些約束及制約關(guān)系對程序設(shè)計時排序也會產(chǎn)生相應(yīng)的影響。因此,多約束性也是計算機程序設(shè)計時排序問題的一個特點。
(4)多目標(biāo)性。程序設(shè)計時有些數(shù)據(jù)資源是隨機存放的,然而這樣的數(shù)據(jù)資源又很重要,可以同時被不同的目標(biāo)選用。所以在程序設(shè)計時,處理排序問題還要參照有關(guān)數(shù)據(jù)的選用目標(biāo)及其有關(guān)標(biāo)準(zhǔn),優(yōu)化數(shù)據(jù)排序問題,以免發(fā)生數(shù)據(jù)資源引用混亂。所以,多目標(biāo)性也是計算機程序設(shè)計時排序問題的一個特點。
2 計算機程序設(shè)計中的排序方法分析
根據(jù)計算機程序設(shè)計的具體功能要求,研究計算機程序設(shè)計時的各種不同排序方法的優(yōu)缺點,選出適合程序設(shè)計要求的排序方法,優(yōu)化排序問題,從而提高計算機程序設(shè)計的質(zhì)量及增強軟件功能,最大限度的發(fā)揮程序功能的實際作用,促進計算機軟件開發(fā)行業(yè)的快速發(fā)展,提高生產(chǎn)力。
計算機程序設(shè)計時的排序方法主要有以下幾種。
2.1 冒泡排序
冒泡排序是計算機程序設(shè)計時最基本的排序方法,其核心思想對緊鄰的兩個數(shù)據(jù)進行兩兩比較,根據(jù)比較結(jié)果調(diào)整兩個數(shù)據(jù)的位置。如在比較的時,將兩兩比較時較小的數(shù)據(jù)調(diào)整到前面,較大數(shù)調(diào)整到后面,然后再將較大的數(shù)與后面緊臨的數(shù)進行比較,直到所有數(shù)據(jù)都比較完成,并將數(shù)據(jù)按從小到大的順序排放。冒泡排序最主要的是一次只對兩個數(shù)據(jù)比較,并根據(jù)結(jié)果不斷調(diào)整數(shù)據(jù)位置,直至數(shù)據(jù)比對完。一般情況下,冒泡排序只用一個輔助單元,并利用該輔助單元的基本功能,完成數(shù)據(jù)的重新排放。冒泡排序的空間復(fù)雜程度為 O(1),選用冒泡排序方法特別要注意的是需要排序的數(shù)據(jù)以及完成這些數(shù)據(jù)的排序所需要的時間。根據(jù)程序設(shè)計功能的實際要求以及冒泡排序的特點,確定冒泡排序的平均時間復(fù)雜度為 O(n^2)。是部分?jǐn)?shù)據(jù)的冒泡排序圖。
2.2 選擇法排序
選擇法排序也是解決計算機程序設(shè)計時有關(guān)排序問題的常用方法。選擇法排序能夠較大的提升計算機程序設(shè)計的質(zhì)量。選擇法排序的基本思想是,先對一組數(shù)據(jù)進行分析比較,每次選出其中最小或最大的數(shù)據(jù)放在數(shù)列的開始位置,直至所有的數(shù)據(jù)排列完成。選擇排序法是一種不穩(wěn)定的排序方法。如每次比較時選出最小的數(shù)據(jù)放在數(shù)列的開始位置,則需要對數(shù)列中所有數(shù)據(jù)進行比較與改變存放位置,為斷的進行這個比較和位置交換操作,以達到數(shù)據(jù)排序的需要。實現(xiàn)計算機程序設(shè)計質(zhì)理的提高。這種選擇排序法的空間復(fù)雜度也是 O(1),而且其的時間效率一樣與數(shù)據(jù)的多少有關(guān),其平均時間復(fù)雜度為 O(n^2)。
2.3 快速排序法
快速排序法是計算機程序設(shè)計時一種較常用的數(shù)據(jù)排序方法,,選用這種排序方法也可以極大的提高計算機程序設(shè)計的質(zhì)量,增強其功能,降低程序的誤差?焖倥判蚍ㄅc冒泡排序法及選擇排序法不同,它核心思想是每次將原始數(shù)據(jù)分為兩部分,并且保證一部分的數(shù)據(jù)比另一部分的數(shù)據(jù)都小(或都大),也就是說每次都將小數(shù)(或大數(shù))放在一起。因此選用這種排序方法需要設(shè)計兩個指針,分別指定小數(shù)及大數(shù)的初始值,然后根據(jù)快速排序法的思想,分別大數(shù)部分及小數(shù)部分進行排序,最后將兩部分?jǐn)?shù)據(jù)合并。根據(jù)每次替換掃描的結(jié)果,比較兩個指針數(shù)據(jù)的大小,兩個指針數(shù)值相同,則完成數(shù)據(jù)排序工作。快速排序方法較好,且符合計算機程序設(shè)計的具體要求。在快速排序法中,如果將數(shù)據(jù)進行n 次劃分,所選擇的基值依然是未排序中的最大值(或最小值),那么將得到總的比較次數(shù)也達到一個最大值,而且這個最大值是 O(2^n)。結(jié)合快速排序法的具體操作,能夠算出其平均時間復(fù)雜度為 O(log2n)。
2.4 合并排序
合并排序即歸并排序,其基本思想是分法。即將待排序數(shù)據(jù)分為多個小序列,然后將每個序列分別排序,最后將排序好序列合并在一起,成為一個有序的排序數(shù)列。將每個未排序數(shù)據(jù)進行排序,選用雙子集合的方式進行排序,最終得到各個排序好的集合,并合并起來,很到較好的排序結(jié)果。在最差的情況下,其時間復(fù)雜度如下式(1)計算:合并排序與快速排序相似,但其穩(wěn)定性高于快速排序。合并排序已是計算機程序設(shè)計中最常用的效果較好且較穩(wěn)定的數(shù)據(jù)排序方式。
2.5 具有多目標(biāo)性
程序設(shè)計人員在執(zhí)行數(shù)據(jù)排序時,還要考慮同組數(shù)據(jù)資源信息或記錄被多個目標(biāo)選用的情況。這就需要設(shè)計人員在程序設(shè)計開發(fā)時一定要嚴(yán)格要求自己,執(zhí)行程序開發(fā)的有關(guān)標(biāo)準(zhǔn),提高程序設(shè)計的適用性。
綜上所述,計算機程序排序問題是一個復(fù)雜問題,影響著計算機程序的質(zhì)量與功能,所以計算機程序設(shè)計者要持續(xù)提升自己的專業(yè)水平,跟上計算機技術(shù)發(fā)展的趨勢,在計算機程序設(shè)計開發(fā)時根據(jù)軟件功能要求盡可能的選用最佳的排序方法。
3 計算機程序設(shè)計中排序方法的選擇
在進行的計算機程序設(shè)計開發(fā)時,通常要選用的計算機排序方法,要能滿足軟件功能的要求,并提高軟件功能的質(zhì)量,這就要求計算機程序設(shè)計人員要用合理的方法選用計算機程序設(shè)計的排序方法,以滿足軟件開發(fā)的要求,并保證軟件正常使用。
3.1 排序方法的優(yōu)化
在計算機程序設(shè)計的排序方法選擇時,通常要考慮數(shù)據(jù)的實際情況,選用合適的最優(yōu)的排序方法,以保證程序的功能要求。如在程序設(shè)計時選用冒泡排序方法,則可選擇標(biāo)志設(shè)置的方法,并將其寫到數(shù)據(jù)交換代碼程序中,這樣可以很大的提高冒泡排序法的質(zhì)量,從而提高計算機程序設(shè)計的質(zhì)量和功能。如果采用排序法來處理計算機程序的排序問題,那么可以通過去掉不必要的操作,并記錄每個數(shù)據(jù)的存放位置,然后根據(jù)指定的規(guī)則查找對比數(shù)據(jù),實現(xiàn)數(shù)據(jù)比對,位置交換的操作,從而達到優(yōu)化排序功能。對計算機程序設(shè)計時數(shù)據(jù)排序問題的優(yōu)化操作,其核心是要注意樞紐的選用,保證樞紐的功能要求,這樣才能提高快速排序效果。
3.2 排序方法的比較與總結(jié)
計算機程序設(shè)計開發(fā)時有較多的數(shù)據(jù)排序處理方法,具體程序開發(fā)選用哪種,則要綜合考慮各種排序方法的所需平均時間及最壞情況時的時間以及存儲空間等幾個方面的差異,選出最適合程序需求的排序方法。通過上面的分析可以看出,平均時間為O(n^2),最壞情況下的時間為O(n^2),輔助存儲空間為 O(1),數(shù)據(jù)的變化情況對排序的最終處理結(jié)果的影響很大。所以,在計算機程序設(shè)計時有關(guān)排序問題選擇,需要綜合考慮各種因素對排序結(jié)果的影響,既要考慮排序時所需要的時間,要考慮排序時所需要的內(nèi)存,平衡多方因素,合理選擇排序方法,以提高程序的性能。
在計算機程序設(shè)計時,要盡可能的選用最優(yōu)的選擇排序方法,以增強計算機程序設(shè)計的性能。由于選用不同的排序方法對程序設(shè)計的性能影響是不一樣的。計算機程序設(shè)計時,各種排序方法所耗費的時間不盡相同,所需時間與 n 有很大關(guān)系。假如n 值不大,則一般選擇直接插入法、選擇排序法等,這樣可以記錄信息數(shù)據(jù)量相比較多的內(nèi)容,選擇排序法是較適合程序的需求。假如n 值相比很大,則一般選用復(fù)雜度相比較小的排序方法,如快速排序法等。另外快速排序法所耗費的時間也相比不多,一般常用。還有,在選用排序方法時,程序人員有時還可參考數(shù)值文件的初始狀態(tài)。假如關(guān)鍵字初始狀態(tài)是正序排列,那么此時可選用冒泡排序方法。假如程序設(shè)計時,要求對兩種或多種的關(guān)鍵字進行對比時,則選用二叉樹的排序方法較合適等等,這樣根據(jù)程序設(shè)計的具體要求,綜合考慮選用哪種排序方法以提高程序的性能。
4 結(jié)束語
討論計算機程序設(shè)計時排序問題的特征,根據(jù)計算機程序設(shè)計時常用的排序方法,合理的選用排序方法,以滿足計算機程序設(shè)計時數(shù)據(jù)排序的需求,從而保證計算機程序設(shè)計軟件的功能性。在計算機程序設(shè)計時,要重視排序問題的處理。優(yōu)化程序的排序方法,加強程序設(shè)計性能,是拓展計算機技術(shù)應(yīng)用領(lǐng)域的重要手段。選用不同排序方法,實現(xiàn)計算機程序功能的不同點,以符合各種應(yīng)用需求。因此,在計算機程序設(shè)計時,程序設(shè)計人員要選用適當(dāng)?shù)呐判蚍椒ㄒ詽M足程序開發(fā)的需求,并盡可能的優(yōu)化計算機程序功能。這樣可以減少提高程序設(shè)計的流程,調(diào)整程序設(shè)計的難度,而且還能提高軟件的性能。
參考文獻:
[1] 薛輝.冒泡排序的口訣教學(xué)法[J].陜西教育(高教版),2012(5):103-104.
[2] 趙天奇.基于特殊模糊數(shù)集理論的排序函數(shù)研究[J].中國電子商務(wù),2013(6):187.
[3] 張健.計算機程序設(shè)計中的排序問題探討[J].計算機光盤軟件與應(yīng)用,2014(14):169-170.
本文編號:1728188
本文鏈接:http://sikaile.net/wenshubaike/dxkc/1728188.html