原理:從第乙個資料開始,兩兩比較,如果左邊的資料大的話,就交換兩數的值,每一輪氣泡排序後就會得到乙個最大值
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,程式對精心選擇的 典型 苛刻切帶有刁難性的幾組輸入資料能夠得出滿足要求...