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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

c语言排序系统代码怎么写,排序概述(c语言)(示例代码)

發(fā)布時(shí)間:2023/12/15 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言排序系统代码怎么写,排序概述(c语言)(示例代码) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

排序問(wèn)題可以說(shuō)是算法入門中的入門了,可盡管如此,算法這個(gè)東西還是讓許多初學(xué)者傷透了腦筋(such as me~)。But,然而,但是,排序小結(jié)來(lái)了(基于c語(yǔ)言),希望能給讀者包括筆者本身帶來(lái)理解上的新體驗(yàn)。

1.冒泡排序。

所謂冒泡排序,從字面就可大體了解,對(duì)一系列數(shù),對(duì)滿足條件的數(shù),讓其依次“冒泡浮出”。其基本思路是:每次將相鄰兩個(gè)數(shù)進(jìn)行比較,將小的數(shù)(或大的數(shù),看你需要逆序還是順序)調(diào)到前頭去。這樣,假如有6個(gè)數(shù),我們第一次檢索這六個(gè)數(shù),找出最小的放在第一個(gè)位置上;再進(jìn)行下一次檢索,這時(shí)只要檢索余下的五個(gè)數(shù),找出次小者放在第二個(gè)位置。按照這個(gè)思路,依次進(jìn)行即可。

從上面的分析我們可以看出:如果有n個(gè)數(shù)要進(jìn)行比較,我們要進(jìn)行n-1趟比較,在第一趟中要進(jìn)行n-1次兩兩比較,第j趟中要進(jìn)行n-j次比較。

具體體現(xiàn)在代碼上,就是:(我以十個(gè)數(shù)為例)

需要說(shuō)明的是,這里我把排序的步驟寫在了一個(gè)子函數(shù)里,用main函數(shù)去調(diào)用這個(gè)函數(shù)。

2.選擇排序。

可以看到,冒泡已經(jīng)比if(a>b)這種最簡(jiǎn)單的比較大小的做法優(yōu)越很多了,可是,即是如此,系統(tǒng)還是要做比較大的計(jì)算量。有沒有更快一點(diǎn)的方法呢?選擇法。

選擇法的基本思路是:把第i小的數(shù)直接放在第i的位置上,直接實(shí)現(xiàn)排序。

c語(yǔ)言代碼如下:

在處理很多數(shù)據(jù)時(shí),選擇法明顯比冒泡快得多。他的時(shí)間復(fù)雜度是O(logn)。

3.二分查找。(此法更多的是用來(lái)檢查一列數(shù)中是否有某數(shù),若沒有,將此數(shù)插入到數(shù)列中,使得數(shù)列依然滿足大小順序排列。)

二分查找又稱插入排序。

兩側(cè)開始,看中分位置的數(shù),檢查該數(shù)是否為所找的數(shù)。若不是,再平分,再查找。依次進(jìn)行下去。直到:原先第一位置的數(shù)的標(biāo)記大于了最后位置的數(shù)的標(biāo)記為止。

若沒有,插入新數(shù)的時(shí)候,只要將該數(shù)之后的數(shù)整體向右移動(dòng)一個(gè)位置,空出來(lái)的位置填進(jìn)此數(shù)。

看代碼:(我先初始化一個(gè)數(shù)組,有則輸出yes,沒有則插入這個(gè)數(shù)并輸出新數(shù)組)

一口氣介紹了三種方法,還請(qǐng)大神們指點(diǎn)一二。個(gè)人覺得有這個(gè)方針:倘若你暫時(shí)不理解,不妨先背過(guò)一個(gè)排序方法(我寫的子函數(shù)就行),用著用著,就會(huì)柳暗花明,豁然開朗~~~~

總結(jié)

以上是生活随笔為你收集整理的c语言排序系统代码怎么写,排序概述(c语言)(示例代码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。