鍊錶的氣泡排序

2021-09-02 07:50:26 字數 859 閱讀 3741

現在要來重新審視一下氣泡排序了

氣泡排序的原理是這樣的

來自在清楚了氣泡排序的原理後,我寫的一般是這樣的

for

(i =

0; i < n-

1; i++

)for

(j =

0; j < n-i-

1; j++)if

(a[j]

>a[j+1]

)

這樣完成公升序排列,並且在之後我這串**背了下來。

但是,這是經過優化後的**。

在想把鍊錶排序的時候我發現不管怎麼樣我都用不上這串**,如果要用上的話,就需要更多的用來記錄位置的變數,這顯然很麻煩。

後來發現氣泡排序不優化或者說徹頭徹尾地暴力,似乎就可以用在鍊錶上了。

像這樣

for

(i =

0; i < n-

1; i++

)for

(j =

0; j < n-

1; j++)if

(a[j]

>a[j+1]

)

這樣的**就可以很輕鬆地改寫成煉表的氣泡排序了

if

(head ==

null

)return

;for

(i = head; i->next!=

null

;i = i->next)

}}

鍊錶氣泡排序

2011 07 22 21 33 111人閱讀收藏 舉報 任意兩個相鄰節點p q位置互換圖示 假設p1 next指向p,那麼顯然p1 next next就指向q,p1 next next next就指向q的後繼節點,我們用p2儲存 p1 next next指標。即 p2 p1 next next,則...

鍊錶氣泡排序

任意兩個相鄰節點p q位置互換圖示 假設p1 next指向p,那麼顯然p1 next next就指向q,p1 next next next就指向q的後繼節點,我們用p2儲存 p1 next next指標。即 p2 p1 next next,則有 p q 排序前 p1 next p1 next nex...

鍊錶排序 氣泡排序

動態陣列的儲存和排序 需求 c不支援動態陣列,申明的時候,一定要指明動態陣列的大小,不能將陣列的大小設定為未知數,但是很多情況 下,資料量的大小是未知數,或者資料量的大小會隨著問題的變化而變化。解決 使用鍊錶結構來儲存資料 include stdafx.h include stdafx.h incl...