演算法與資料結構

2021-07-29 16:13:59 字數 1530 閱讀 8365

原理:從第乙個資料開始,兩兩比較,如果左邊的資料大的話,就交換兩數的值,每一輪氣泡排序後就會得到乙個最大值

public

void

sort(int arr)

}}}

public

void

sort(int array)

}}

每次都只和前乙個數比較

方法一:

public

void

sort(int arr)else

}}}

方法二:

public

void

sort(int arr)else

arr[j-1] = temp;

}}}

一對小兔子,到第三個月才可以生小兔子,以後每個月都會生一對,求第n個月有多少對兔子

public

intnumber(int n)else

}

以最後乙個資料做參照物,定義左右指標(可以理解成下標),左指標從左往右依次找資料,找比參照物大的資料,右指標從右往左找比參照物小的資料,找到就停止,如果左右指標沒有交叉,就交換左右指標的位置上的值,繼續找資料,如果交叉,終止,交換左指標和參照物的值。由左指標把資料分成兩半,每一半按同樣的方式去找。

/**

* 快速排序

*@param datas

*/public

static

void

qiucksort(int datas,int left,int right)

//找中間值的下標

int middle = findmiddle(datas,left,right);

//middle就將資料分成兩半

//對左一半進行快排

qiucksort(datas, left, middle - 1);

//對右一半進行快排

qiucksort(datas, middle + 1, right);

}/**

* 找中間值的下標

*@param datas

*@param left

*@param right

*@return

*/private

static

intfindmiddle(int datas, int left, int right)

//右指標從右往左找資料,找比參照物小的

while(rightindex >= 0 && datas[rightindex] >= temp)

//判斷有沒有交叉

if (leftindex >= rightindex) else

}return middle;

}

四種排序的速度測試

快速排序最快,插入排序和選擇排序的效率基本相同,氣泡排序最慢。

資料結構與演算法 演算法 演算法和資料結構

資料結構與演算法 演算法 好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您一開始或至少在我的情況下,並且我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟...

資料結構 資料結構與演算法01

1 求一組整數中的最大值。演算法 基本操作是 比較兩個數的大小 模型 仔細想想 你並不知道這個整數到底是多大?整數過大你該怎麼去表示?2 足協的資料庫管理的程式 演算法 需要管理的專案?如何管理?使用者介面?模型 3 資料與資料結構 資料 所有能被輸入到計算機中,並被計算機處理的符號的集合計算機操作...

資料結構 資料結構與演算法02

1 演算法設計的原則 設計演算法時,通常應考慮達到以下目標 1,正確性 2,可讀性 3,健壯性 4,高效率與低儲存量需求 1,正確性 規格說明 四個層次 a,程式中不含語法錯誤 b,程式對於幾組輸入資料能夠得出滿足要求的結果 c,程式對精心選擇的 典型 苛刻切帶有刁難性的幾組輸入資料能夠得出滿足要求...