本帖最后由 librazeng 于 2013-5-18 11:38 编辑
关于快速排序的问题,请看代码:- public class FastSort {
- /**快速排序
- * @param args
- */
- public static void main(String[] args) {
- int[] arr={43,65,88,63,44,2,578,8,56,4,66};
- fastSort(arr);
- for(int i=0;i<arr.length;i++){
- System.out.print(arr[i]+" ");
- }
- }
- private static void fastSort(int[] arr) {
- for(int x=0;x<arr.length-1;x++){
- int min=arr[x];
- int Index=x;
- for(int y=x+1;y<arr.length;y++){
- if(min>arr[y]){
- min=arr[y];
- Index=y;
- }
- }
- int temp=arr[x];
- arr[x]=arr[Index];
- arr[Index]=temp;
- }
- }
- }
复制代码 结果:2 4 8 43 44 56 63 65 66 88 578
但我把后面的代码做了一点修改:- int temp=arr[x];
- arr[x]=min;
- min=temp;
复制代码 结果:2 2 2 2 2 2 4 4 4 4 66
请问这是为什么?min和arr[Index]表示的不是同一个数吗?
|
|