




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Java常用排序算法排序是計(jì)算機(jī)程序中常見的操作之一。在日常編程中,我們經(jīng)常需要對一組數(shù)據(jù)進(jìn)行排序,以便更好地處理和使用這些數(shù)據(jù)。Java提供了各種排序算法,可以根據(jù)不同的需求選擇合適的算法。本文將介紹Java中常用的幾種排序算法。1.冒泡排序(BubbleSort)冒泡排序是一種簡單的排序算法,它重復(fù)地遍歷要排序的序列,比較相鄰的元素,并按照規(guī)定的順序交換它們。如果需要按照升序排序,那么每一輪遍歷都會將序列中最大的元素冒泡到末尾。publicclassBubbleSort{
publicstaticvoidbubbleSort(int[]arr){
intn=arr.length;
for(inti=0;i<n-1;i++){
for(intj=0;j<n-i-1;j++){
if(arr[j]>arr[j+1]){
inttemp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
}2.選擇排序(SelectionSort)選擇排序是一種簡單直觀的排序算法。它的思路是每一次從待排序的數(shù)據(jù)中選擇最小(或最大)的一個元素,放到序列的起始位置。經(jīng)過一輪輪的比較和選擇,最終得到排序好的序列。publicclassSelectionSort{
publicstaticvoidselectionSort(int[]arr){
intn=arr.length;
for(inti=0;i<n-1;i++){
intminIndex=i;
for(intj=i+1;j<n;j++){
if(arr[j]<arr[minIndex]){
minIndex=j;
}
}
inttemp=arr[minIndex];
arr[minIndex]=arr[i];
arr[i]=temp;
}
}
}3.插入排序(InsertionSort)插入排序是一種簡單直觀的排序算法,它的工作原理是通過構(gòu)建有序序列,對于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應(yīng)位置并插入。publicclassInsertionSort{
publicstaticvoidinsertionSort(int[]arr){
intn=arr.length;
for(inti=1;i<n;i++){
intkey=arr[i];
intj=i-1;
while(j>=0&&arr[j]>key){
arr[j+1]=arr[j];
j=j-1;
}
arr[j+1]=key;
}
}
}4.快速排序(QuickSort)快速排序是一種高效的排序算法,它采用了分治的思想?;舅悸肥沁x擇一個基準(zhǔn)元素,通過一趟排序?qū)⑿蛄蟹殖蓛蓚€子序列,然后分別對這兩個子序列遞歸進(jìn)行排序,最終得到有序序列。publicclassQuickSort{
publicstaticvoidquickSort(int[]arr,intlow,inthigh){
if(low<high){
intpivotIndex=partition(arr,low,high);
quickSort(arr,low,pivotIndex-1);
quickSort(arr,pivotIndex+1,high);
}
}
privatestaticintpartition(int[]arr,intlow,inthigh){
intpivot=arr[low];
while(low<high){
while(low<high&&arr[high]>=pivot){
high--;
}
arr[low]=arr[high];
while(low<high&&arr[low]<=pivot){
low++;
}
arr[high]=arr[low];
}
arr[low]=pivot;
returnlow;
}
}5.歸并排序(MergeSort)歸并排序是一種穩(wěn)定的排序算法,它采用了分治的思想。基本思路是將待排序的序列不斷劃分成兩個子序列,直到每個子序列只有一個元素,然后將這些子序列兩兩合并,最終得到有序序列。publicclassMergeSort{
publicstaticvoidmergeSort(int[]arr,intlow,inthigh){
if(low<high){
intmid=(low+high)/2;
mergeSort(arr,low,mid);
mergeSort(arr,mid+1,high);
merge(arr,low,mid,high);
}
}
privatestaticvoidmerge(int[]arr,intlow,intmid,inthigh){
int[]temp=newint[high-low+1];
inti=low;
intj=mid+1;
intk=0;
while(i<=mid&&j<=high){
if(arr[i]<=arr[j]){
temp[k]=arr[i];
i++;
}else{
temp[k]=arr[j];
j++;
}
k++;
}
while(i<=mid){
temp[k]=arr[i];
i++;
k++;
}
while(j<=high){
temp[k]=arr[j];
j++;
k++;
}
for(intm=0;m<temp.length;m++){
arr[m+low]=t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國過氧化鋅市場發(fā)展現(xiàn)狀及前景趨勢分析報告
- 2025-2030年中國調(diào)壓箱市場發(fā)展?fàn)顩r及營銷戰(zhàn)略研究報告
- 2025-2030年中國裝飾天花板制造行業(yè)運(yùn)行狀況及發(fā)展趨勢預(yù)測報告
- 2025-2030年中國聚萘二甲酸乙二醇酯pen行業(yè)運(yùn)行趨勢及投資戰(zhàn)略研究報告
- 2025-2030年中國粗糧飲料市場發(fā)展趨勢及前景調(diào)研分析報告
- 2025-2030年中國硝酸異辛酯行業(yè)運(yùn)行狀況及發(fā)展趨勢分析報告
- 2025-2030年中國眼影市場運(yùn)行現(xiàn)狀及發(fā)展前景分析報告
- 3.1產(chǎn)業(yè)轉(zhuǎn)移對區(qū)域發(fā)展的影響(第1課時) 【知識精研】高二地理課件(湘教版2019選擇性必修2)
- 2025年醫(yī)院實(shí)習(xí)協(xié)議書樣本
- 2025年湖南工程職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024年云南中煙工業(yè)有限責(zé)任公司招聘筆試真題
- 2024年山東輕工職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 2022新教材蘇教版科學(xué)5五年級下冊全冊教學(xué)設(shè)計(jì)
- 2024-2025學(xué)年全國中學(xué)生天文知識競賽考試題庫(含答案)
- 加利福尼亞批判性思維技能測試后測試卷班附有答案
- EN248表面處理測試標(biāo)準(zhǔn)
- 云南省普通初中學(xué)生成長記錄
- 工程結(jié)算書(完整版)
評論
0/150
提交評論