bubble sort中change的作用舉例

2021-07-13 19:45:28 字數 706 閱讀 6145

#include void bubble_sort(int a,int n) }}

void array_print(int a,int n),

當外層迴圈進行到i=4

時,change

為true

,重置為

false

,進入內層迴圈,

j=0,

j<4

,直至迴圈到

j=3時,

a[3]=5>a[4]=4

,a[3]<->a[4]。

此時change

被設定為

true。i

被設定為3。

當外層迴圈繼續進行到i=3

時,change

重置為false

,進入內層迴圈,

j=0,

j<3

,直至迴圈結束,仍未出現

a[j]>a[j+1]

的情況。

此時change

仍為false。

那麼外層迴圈因判斷條件(i>=1&&change

)為false

,無需繼續向下執行。

節省了程式執行過程所需要的時間。

在沒有change

常量的情況下,程式的外層迴圈必須執行到底(即直至

i=0)。

由於陣列內資料情況的不確定性,導致很多情況下會極大地浪費運算時間,尤其是在大資料量的情況下。

golang中chan型別的位址

chan型別本是就是指標,因此直接列印即可,不需要再取位址.如果在取位址就是 指向指標的指標 pointer to pointer 即類似c c 中的二級指標 如 int a int p a int pp p 其中pp就是二級指標 package main import fmt func main ...

golang signal和chan結合使用

golang中對訊號的處理主要使用os signal包中的兩個方法 乙個是notify方法用來監聽收到的訊號 乙個是 stop方法用來取消監聽。接下來舉個signal和chan結合使用的例子 funcmain go func c make chanos.signal signal.notify c,...

Golang 關於通道 Chan 詳解

首先我們來看執行緒,在golang裡面也叫goroutine 下面我們先來看乙個例子吧 import fmt funcmain 在golang裡面,使用go這個關鍵字,後面再跟上乙個函式就可以建立乙個執行緒。後面的這個函式可以是已經寫好的函式,也可以是乙個匿名函式 funcmain i fmt.pr...