思路:int
arrs =
;
i :i每次迴圈,都會確定陣列中最後一位元素是陣列中最小的元素。
j : 每次迴圈,陣列都會從下標為j的元素與下標為j+1的元素進行比較,如果小於,則調換兩者的位置,依次向下進行判斷,直到確定陣列最後一位元素為最小的元素。
思路:for
(int i =
0; i < arrs.length -
1; i++)}
} system.out.
println
(arrays.
tostring
(arrs)
);
i:i 每次迴圈陣列下標i元素都會與陣列其他的所有元素進行比較,並確定陣列i下標元素比較其i下標後面的元素,為最大元素。
j = i + 1:i 每次迴圈,都會與i+1進行比較,並確定i 元素大於 i+1元素
思路:for
(int i =
0; i < arrs.length -
1; i++)}
} system.out.
println
(arrays.
tostring
(arrs)
);
把陣列開始下標元素當做以排序元素,從第二個元素開始進行排序。
排序步驟: 將排序元素依次與前乙個元素進行比較,如果小於前乙個元素(適合)則直接插入當前下標位置,如果不適合,則將上乙個元素向後移動一位,然後繼續判斷與後面的元素是否滿足,不適合則前面的元素繼續先後移動一位,繼續之前的操作,直到找到合適的位置,將排序的元素插入。
思路:for
(int i =
1;i < arrs.length; i++
) arrs[j +1]
= x;
// 將排序元素插入適合的位置
}system.out.
println
(arrays.
tostring
(arrs)
);
兩路歸併演算法,兩個排好序的子串行合併為乙個子串行 (分治演算法)
歸併排序是一種概念上最簡單的排序演算法,與快速排序一樣,歸併排序也是基於分治法的。歸併排序將待排序的元素序列分成兩個長度相等的子串行,為每乙個子串行排序,然後再將他們合併成乙個子串行。合併兩個子串行的過程也就是兩路歸併。
public
static
void
main
(string[
] args)
private
static
void
mergesort
(int
arrs,
int startindex,
int endindex)
}private
static
void
merge
(int
arrs,
int left,
int mid,
int right)
while
(p1 <= mid) tmp[k++
]= arrs[p1++];
//如果第乙個序列未檢測完,直接將後面所有元素加到合併的序列中
while
(p2 <= right) tmp[k++
]= arrs[p2++];
//如果第二個序列未檢測完,直接將後面所有元素加到合併的序列中
//複製回原陣列
for(
int i = left; i <= right; i++
)}
二分查詢演算法:前提陣列必須是排序後的陣列思路:
arrays.
sort
(arrs)
;// 將陣列進行排序 公升序
system.out.
println
("排序後的陣列attr="
+ arrays.
tostring
(arrs));
int num =14;
// 查詢陣列中為14的元素
int left =0;
// 開始下標
int right = arrs.length;
// 結束下標
int index;
// 查詢條件匹配的下標
while
(true
)else
if(arrs[mid]
> num)
else
if(arrs[mid]
< num)
} system.out.
println
(arrs[index]
);
陣列排序常見的幾種演算法
氣泡排序的基本思想就是對比相鄰的元素值,如果滿足條件就交換元素值,把小的放前面,把大的放後面。其演算法由兩層迴圈實現,外層迴圈控制排序次數,一般為排序的陣列的長度減1,內層迴圈主要用於比較相鄰元素的大小,以判斷是否交換位置。內層的對比次數隨著外層排序的次數的增加而減少。如下 public class...
幾種常見的排序演算法
氣泡排序演算法的運作如下 1 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。3 針對所有的元素重複以上的步驟,除了最後乙個。4 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要...
幾種常見的排序演算法
1.氣泡排序 void bubble sort int array,int n if 1 flag break printf d i return 2.快速排序 好 void quicksort int a,int left,int right left是選擇的軸點,如0,表示這個資料為軸點,rig...