練習選擇排序演算法碰到鬼 一種用List

2022-02-25 10:34:54 字數 1422 閱讀 4762

實在無語了,近來重溫演算法,在寫選擇排序

可是 碰到鬼了

兩種寫法 乙個用list乙個用int

其實實現我認為都一樣

各位幫我看看這兩個方法有什麼兩樣??

問題是執行起來 第乙個方法用list的這個 總歸會有2-3位次序錯誤

用int卻正常 自己在這個上面浪費好長時間了還沒看出來 誰幫下。。。

listlist = generatelist(10);

sortings.showresult("originallist:", list);

sortings.selectionsort(new list(list));

sortings.sort(list.toarray());

隨機生成的originallist:

95,35,61,-3,-29,-57,-75,26,-70,-21, 

selectionsort(listlist)方法的答案 

-57,-29,-21,-75,-70,26,-3,61,35,95,

sort(int list)的答案

-75,-70,-57,-29,-21,-3,26,35,61,95,

再來一組

originallist:

95,35,61,-3,-29,-57,-75,26,-70,-21,

-57,-29,-21,-75,-70,26,-3,61,35,95,

-75,-70,-57,-29,-21,-3,26,35,61,95,

originallist:

-55,78,59,86,-48,-90,-84,-5,-77,-77,

-90,-77,-84,-77,-55,-48,-5,59,78,86,

-90,-84,-77,-77,-55,-48,-5,59,78,86,

每次出錯的序號都不固定,但是就那麼幾組數字

自己眼花了 誰幫忙看下。。謝謝了

public

static

void

selectionsort(list

<

int>

list)}//

showresult("selectionsort", list);

foreach

(int

i in

list)

console.writeline();

}public

static

void

sort(

int list)

intt 

=list[min];

list[min] 

=list[i];

list[i] =t;

}foreach

(int

i in

list)

console.writeline();}

每天一種演算法 選擇排序

選擇排序是這樣的,首先,找到最小的乙個數,放在第乙個位置,然後在剩下的元素中,找到最小的 放在第二個位置,再在除過這兩個元素的剩下的裡面找到最小的,就是第三小。這樣依次類推。最後得到的數列,就是從小到大了。這個排序的效率不是很高。如果有100個數,要比較100 99 98 1 次。package b...

一種快速排序演算法

using system class program for int l 0 l src.length l src count temp l i 3 0xff temp l static void main string args watch.stop console.writeline quick...

堆排序 最大堆 選擇排序的一種

堆排序只要理解了原理其實並不難,我在寫這個演算法時,按照理解一次性就成功了 1.首先應該明確的是堆 二叉堆 是一顆完全二叉樹 因為二叉堆是一顆完全二叉樹,所以可以用陣列來儲存堆中的每乙個元素,而且可以通過某個節點在陣列中的下標 i 很方便的找到其左右孩子節點的下標以及其父親節點的下標,如下圖所示 由...