冒泡,選擇,插入,快速,歸併這五個排序是所有程式語言初學者所遇到過的,可能在實際的程式設計應用中不會遇到,
但對於鍛鍊程式設計思維,還是有很好的作用。
氣泡排序
氣泡排序的就是讓大的數向後冒,讓小的數向前冒。通過前後兩個資料比較,不斷將大的元素移動到尾部。
1選擇排序public
static
void
main(string args) ;
4for(int i=0;i) 11}
12}13for(int
a:arr)
16 }
選擇排序就是把無序區的最小元素與首元素互換位置,然後將有序區的區間擴大一位,直到所有無序區都變成有序區。
1public
static
void
main(string args) ;
4for(int i=0;i) 12}
13if(i!=k) 18}
19for(int
a:arr)
22 }
插入排序插入排序是把陣列分為有序區和無序區兩塊,然後將無序區的指定索引的數插入到有序區的指定位置,假設第0個元素是已經排序好的,無序區第一次迴圈從1開始遍歷,設定乙個temp,找到要插入的位置,把temp插入到有序區指定位置。
1快速排序快速排序主要思想方法有兩個:一趟排序和分治;一趟排序完成陣列的第一次排序,設定乙個鍵值data,找到對應正確的位置,data的值插進去;分治就是用分而治之的思想,將鍵值左右兩側分為兩個部分,再呼叫遞迴,將左邊的部分再分為兩個部分,將右邊的部分再分為兩個部分,依此類推,直到將陣列排列完。public
static
void
main(string args) ;
4int j=0;
5for(int i=1;i)
13 arr[j+1]=temp;14}
15}16for(int
a:arr)
19 }
1歸併排序歸併排序要點有兩個:對於兩個有序陣列的合併;遞迴思想。合併兩個有序陣列要定義乙個新陣列temp來存放合併後的陣列,並通過判斷條件讓新的陣列在合併後成為有序陣列。歸併的時候讓陣列呼叫自己,一步步將陣列的長度變小,當子陣列被分治到只有乙個元素的時候,子陣列也就是有序陣列,這時候可以呼叫合併有序陣列的方法,整個陣列也就完成了排序。public
static
void
main(string args) ;
4 quicksort(arr, 0, arr.length - 1);
5for (int
a : arr) 8}
910public
static
int partsort(int arr, int low, int
high)
19 arr[low] =arr[high];
20/**
21* 從high,也就是後面往前遍歷 找到比鍵值小的資料 插入到前面留下的空中 high位再次留下空來
22*/
2324
while (low < high && arr[low] <=data)
27 arr[high] =arr[low];
2829
}30 arr[low] =data;
31/*
32* 迴圈退出後 low和high重合 將將鍵值賦給第low,並將low返回
33*/
34return
low;35}
3637
public
static
void quicksort(int arr, int low, int
high)
4445 }
4 system.out.println("排好序的陣列:");
5for (int
e : a)
6 system.out.print(e + " ");78
}910//
兩路歸併演算法,兩個排好序的子串行合併為乙個子串行
11public
static
void merge(int a,int left,int mid,int
right)
2122
while(p1<=mid) tmp[k++]=a[p1++];//
如果第乙個序列未檢測完,直接將後面所有元素加到合併的序列中
23while(p2<=right) tmp[k++]=a[p2++];//
如果第二個序列未檢測完,直接將後面所有元素加到合併的序列中
2425
//複製回原陣列
26for (int i = left; i <=right; i++)
27 a[i]=tmp[i];28}
2930
31public
static
void mergesort(int a,int start,int
end)
40 }
選擇氣泡排序演算法
使用氣泡排序 package com.qixin.five public class bubblesort inttemp system.out.println 原有陣列內容 printarray array for inti 1 i array.length i system.out.printl...
選擇氣泡排序演算法
使用氣泡排序 package com.qixin.five public class bubblesort inttemp system.out.println 原有陣列內容 printarray array for inti 1 i array.length i system.out.printl...
選擇氣泡排序演算法
使用氣泡排序 package com.qixin.five public class bubblesort inttemp system.out.println 原有陣列內容 printarray array for inti 1 i array.length i system.out.printl...