Re: [J2SE] 請教把1~6隨意排序
※ 引述《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
推
09/02 18:53, , 1F
09/02 18:53, 1F
→
09/03 21:20, , 2F
09/03 21:20, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 7 篇):