◎劉雯
基于計(jì)算機(jī)程序設(shè)計(jì)的排序問題探討
◎劉雯
當(dāng)前,計(jì)算機(jī)領(lǐng)域程序設(shè)計(jì)在不斷的提高水平,如何提高程序設(shè)計(jì)的科學(xué)化,其中排序是一個(gè)主要的研究方向。本文主要探討了在計(jì)算機(jī)進(jìn)行程序設(shè)計(jì)過程當(dāng)中,排序問題所呈現(xiàn)的特點(diǎn),然后根據(jù)不同的排序方法來進(jìn)行探討。
作為計(jì)算機(jī)程序設(shè)計(jì)的重要操作,排序所發(fā)揮的作用是極為重要的。它通過將某一數(shù)據(jù)中的相關(guān)元素或者是相關(guān)的記錄,按照規(guī)則或者說無規(guī)則的排列,然后具備某一方面表達(dá)功能,達(dá)到相應(yīng)的目的。所以,從這個(gè)角度來看,在計(jì)算機(jī)程序設(shè)計(jì)中,排序的作用是非常重要的。如何來進(jìn)行排序或者說如何發(fā)揮排序的最佳效果是當(dāng)前計(jì)算機(jī)程序設(shè)計(jì)領(lǐng)域研究的重要方向。本文關(guān)注計(jì)算機(jī)程序設(shè)計(jì)中排序問題的主要特點(diǎn),對其不同的排列方法進(jìn)行探討,在一定層面有助于于今后計(jì)算機(jī)程序設(shè)計(jì)相關(guān)領(lǐng)域研究的不斷完善。
在計(jì)算機(jī)及程序設(shè)計(jì)的過程當(dāng)中,排序問題具有特點(diǎn)不同的屬性。它們具有一些不確定性、約束性、目標(biāo)性,以及復(fù)雜性的特點(diǎn)。通過這些排序復(fù)雜特點(diǎn),選擇最佳的排序方案在實(shí)踐的過程當(dāng)中具有一定的難度。所以,在進(jìn)行計(jì)算機(jī)排序的過程當(dāng)中,需要充分的考慮諸多因素,利用各個(gè)數(shù)據(jù)之間的關(guān)系,找到一種能達(dá)到相互制約、相互平衡的關(guān)系。
在今后進(jìn)行計(jì)算機(jī)程序設(shè)計(jì)時(shí),可以充分考慮多目標(biāo)性。所謂的多面性就是程序設(shè)計(jì)需要滿足諸多資源,有些是諸多無限的資源,進(jìn)行相同目標(biāo)的實(shí)現(xiàn)。所以,在進(jìn)行數(shù)據(jù)排序的時(shí)候沖突是難免的。無論是計(jì)算機(jī)排序的復(fù)雜性,還是整個(gè)的排序的無限性,都對整個(gè)的程序排序方法的選擇提出了更高的要求。因此,在今后的程序排序的過程當(dāng)中來進(jìn)行科學(xué)排序方法的選擇顯得尤為的重要。
從整體上來看,計(jì)算機(jī)程序在排序過程當(dāng)中主要有以下幾種方法。
首先,選擇法排序。在實(shí)施選擇法排序的時(shí)候,其基本的指導(dǎo)思想就是在元素中選取一個(gè),然后和最小的元素的數(shù)據(jù)進(jìn)行交換。然后再選擇一個(gè)最小的元素,同相應(yīng)的數(shù)據(jù)進(jìn)行交換,然后再從最小值選第三個(gè)進(jìn)行元素的交換,通過這種不斷的優(yōu)化,不斷的選擇直到最后一個(gè)數(shù)據(jù)元素,進(jìn)行排序?yàn)橹?。這種選擇排序法具有的效率還是比較高的。這種方法和常見的冒泡排序法有了一定的相似性。在整個(gè)排序過程當(dāng)中的空間復(fù)雜度幾乎為零,這樣的排序方法具有較高的效力。如果按照正序排序,那么它的順序就會(huì)N減1除以2,還有一種三N加1,如果進(jìn)行排序操作的所有元素,在一個(gè)隨機(jī)操作的情況下,那么,它的難度是零。
其次,快速排序法??焖倥判蚍ㄊ钱?dāng)前在計(jì)算機(jī)程序排序中常用的一個(gè)方法。該方法首先是安排出兩個(gè)設(shè)置指針。然后對指針分別賦予不同的初始值。它的基本思想是按照規(guī)則進(jìn)行掃描,然后進(jìn)行多次的掃描。最終的目標(biāo)是實(shí)現(xiàn)兩個(gè)指針相等,然后通過基準(zhǔn)確定位置,最后完成一次排序,例如,某一數(shù)據(jù),它的排序分別為五十八、十八、六十二、九十四、十三、二十四、五十,那么它最后的排序結(jié)果的是二十八、五十七、三九、十四、六十二、五十,第二代排序就是十四、五十六、十二、七十三,第三代排序就是十四、二十四、三十八、五十。通過這種快速排序法,可以進(jìn)行不斷的循環(huán)。然后得出最大記錄或者是最小記錄。
最后,冒泡排序法。在進(jìn)行冒泡排序法的時(shí)候的,只要對計(jì)算機(jī)程序設(shè)計(jì)中相關(guān)的單元和元素值進(jìn)行比較,把較小那個(gè)單元和數(shù)據(jù)往前調(diào),較大的一個(gè)往后調(diào)。通過這個(gè)方式來對數(shù)據(jù)中的兩個(gè)元素值進(jìn)行比較。一般情況下,在經(jīng)過比較后才會(huì)得出想要的結(jié)果。
從上述的這些計(jì)算機(jī)程序的排序方法可以看出,無論是快速排序法,還是選擇排序法,都對整個(gè)的計(jì)算機(jī)排序的原理及思想提出了更高的要求。在今后的計(jì)算機(jī)程序的排序過程當(dāng)中,需要結(jié)合所要排序的對象進(jìn)行科學(xué)的選擇。
在上文中所要探討了三種不同的計(jì)算機(jī)程序排序的方法。例如,冒泡排序法,快速排序法以及選擇排序法。這三個(gè)方法都和排序的時(shí)間與難度有了一定的關(guān)聯(lián)。
簡單來說排序方法與效率的關(guān)系,當(dāng)數(shù)量較小的時(shí)候,用的排序方法是直接插入或直接選擇。通過這個(gè)排序可能需要排序的次數(shù)較多。但是,當(dāng)需要排序的是一組比較大的數(shù)值時(shí)候,用直接選擇的方法還是比較恰當(dāng)?shù)?。?dāng)排序移動(dòng)次數(shù)較多的時(shí)候,一些排序方法顯然是不合適的。這需要選擇復(fù)雜度較小的排序方法。例如,快速排序法。通過快速排序法或者說是其它方法來完成排序。這些方法之間各有利弊,這些內(nèi)部的排序,通常來說,在整個(gè)計(jì)算機(jī)數(shù)據(jù)排序中,快速排序法的效果是最佳的。因?yàn)樗梢詫θ魏螖?shù)據(jù)進(jìn)行排列。當(dāng)然,這種方法所用的時(shí)間也最短。
在當(dāng)前計(jì)算機(jī)領(lǐng)域如何做好計(jì)算機(jī)程序的排序問題是一個(gè)研究的主要方向。雖然不同的排序方法,所使用的路徑和思路以及指導(dǎo)思想是不同的。但是其目標(biāo)是一樣的,那就是達(dá)到預(yù)定的排序效果。所以在進(jìn)行相應(yīng)的排序方法選擇的時(shí)候,需要按照排序思想排序的效率等綜合進(jìn)行比對分析,最終拿到最佳的排序方案。然后進(jìn)行計(jì)算機(jī)程序設(shè)計(jì)的優(yōu)化處理從而避免所謂的誤操作和浪費(fèi)時(shí)間為整個(gè)的程序編程創(chuàng)造更大便利。總之,在計(jì)算機(jī)程序設(shè)計(jì)的過程當(dāng)中進(jìn)行排序是整個(gè)計(jì)算機(jī)程序編制中所面臨的一個(gè)關(guān)鍵性的操作。在進(jìn)行相關(guān)方法的選擇的時(shí)候,應(yīng)該從整個(gè)的排序要達(dá)到的效果與目標(biāo)出發(fā)來進(jìn)行科學(xué)的選擇。通過這種方式來實(shí)現(xiàn)最佳的程序排序的效果。在今后的計(jì)算機(jī)程序的排序的過程當(dāng)中,還需要在具體的方法選擇層面下更大的工夫。
隨著我國社會(huì)主義現(xiàn)代化建設(shè)的不斷發(fā)展,我國的計(jì)算機(jī)信息技術(shù)得到了前所未有的提升,在現(xiàn)代社會(huì)生產(chǎn)與人們的生活中發(fā)揮著不可替代的作用。作為計(jì)算機(jī)程序設(shè)計(jì)中極為重要的組成部分,排序主要負(fù)責(zé)的是對某一項(xiàng)無規(guī)則數(shù)據(jù)元素或相關(guān)記錄的有效排列,使其形成一種以某種關(guān)鍵字或參考排列的序列。本次研究中,將著重對計(jì)算機(jī)程序設(shè)計(jì)的排序特點(diǎn)進(jìn)行深入分析,介紹了常見的幾類計(jì)算機(jī)程序設(shè)計(jì)排序方法,并探討了計(jì)算機(jī)程序排序方法的有效選擇,為計(jì)算機(jī)程序設(shè)計(jì)排序問題的解決提供參考。
(作者單位:內(nèi)蒙古電子信息職業(yè)技術(shù)學(xué)院)