作者gary1198 (醉楓)
看板java
標題Re: [J2SE] 請教把1~6隨意排序
時間Sun Sep 2 18:14:33 2007
※ 引述《rosemary (迷迭香)》之銘言:
: //對亂數排序,順便就把組順序調動,
: for(int i=0;i<teamlength;i++) {
: for(int j=teamlength-1;j>i;j--) {
: if(temp[j]<temp[j-1]) {
: tempd = temp[j-1];
: temp[j-1] = temp[j];
: temp[j] = tempd;
: temps = team[j-1];
: team[j-1] = team[j];
: team[j] = temps;
: }
: }
: }
: return team;
: }
:
: → rosemary:有個問題 有人知道這個叫做什麼排序法嗎 @@ 09/01 00:45
恕刪~
你例子中所用的為Bubble Sort(氣泡排序)
可以把陣列想成一個直立的容器 容器頂端就是陣列的最左,底部就是陣列最右
陣列中所存放的值,愈小代表其重量愈輕
你例子中的做法是從容器最底部的值開始和上面的值做比較
要是下面的質比上面的值輕(小)的話 那就交換位置(浮上去)
這樣當例子中的第一重迴圈的第一圈跑完時 最輕的值一定會在最上面
第一重迴圈的第二圈跑完時 第二輕的值也就在最上面的第二個位置
依此類推 當迴圈跑完時 一定就會按小到大排好
這種排列方式當數值被排序過後,其前後順序也就不會再隨意的更改
所以是一種穩定的排列 但排列速度慢了點,為O(N^2)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.24.31
推 rosemary:謝謝gary大的詳細解釋..^^ 也謝謝各位網友提供的意見 09/02 18:53
→ freesamael:我個人認為氣泡排序是一個找不到優點的排序法... 09/03 21:20