选择排序和冒泡排序

1.值传递:
八大基本类型+String都是值传递
2.引用传递:
其他的引用类型都是引用传递

(一)冒泡排序:

原数据:{3,14,-3,2,7,1}

内循环做的事情是将大的数往后移:

for(int j=0;j<5;j++){
    if(arr[j]>arr[j+1]){
        int temp =arr[j];        
        arr[j] = arr[j+1];
        arr[j+1] =temp;                    
                    
    }
}

 

第一轮:3,14,-3,2,7,1

①3,14,-3,2,7,1
②3,-3,14,2,7,1
③3,-3,2,14,7,1
④3,-3,2,7,14,1
⑤3,-3,2,7,1,14

第二轮:3,-3,2,7,1

①-3,3,2,7,1

②-3,2,3,7,1

③-3,2,3,7,1
④-3,2,3,1,7---------------3,2,3,1,7,14
 

第三轮:-3,2,3,1
①.-3,2,3,1
②.-3,2,3,1
③.-3.2.1.3-----------~~ -3,2,1,3,7,14
第四轮:-3,2,1

①-3,2,1
②-3,1,2 ----------~~-3,1,2,3,7,14
第五轮:-3,1
①-3,1----------------~~-3,1,2,3,7,14

所以冒泡排序法如下:

for(int i=0;i<5;i++){
    for(int j=0;j<5;j++){
        if(arr[j]>arr[j+1]){
                int temp =arr[j];        
            arr[j] = arr[j+1];
            arr[j+1] =temp;                    
        }
    }
}        

 (二)选择排序:

                int[] arr = {14,2,11,3,8};
        for(int k =0;k<arr.length-1;k++){
            int min = k;
            for(int i=k+1;i<arr.length;i++){
                if(arr[min]>arr[i]){
                    min = i;
                }
            }//这个循环做完之后,min的值才是最小的元素的下标
            
            if(min != k){
                int temp = arr[min];
                arr[min] = arr[k];
                arr[k] = temp;
            }
        }                

 

 

 



 

posted @ 2017-11-18 10:36  isOkFine  阅读(133)  评论(0编辑  收藏  举报