好吧,我一直在搞乱Ruby中不同的排序算法; 主要是变化快速排序.我有一个双枢轴快速排序的版本,可以选择随机枢轴.因此,当随机枢轴落在阵列的开始或结束时,奇怪的事情开始发生.我做了一些调查,并将其归结为这种奇怪的现象.
//irb output #using Ruby 1.8.6 and irb 0.9.5
irb> foo = [1,2,3,4] #create my array, very generic for an example
=> [1, 2, 3, 4]
irb> foo[0],foo[1],foo[2],foo[3] = foo[1],foo[0],foo[3],foo[2]
=> [2, 1, 4, 3] #array swaps inside values with edge values fine.
irb> foo
=> [2, 1, 4, 3] #values have changed correctly.
irb> foo = [1,2,3,4] #reset values
=> [1, 2, 3, 4] #next I am going to try and swap the element foo[0] with itself
irb> …Run Code Online (Sandbox Code Playgroud) ruby ×1