题解 | #冒泡排序#
冒泡排序
http://www.nowcoder.com/practice/83ef53227d654df28c18fd6a377e8fee
题意整理。
- 给定一个长度为7的数组。
- 按从小到大的顺序进行排序,然后输出。
方法一(循环)
1.解题思路
- 遍历前n-1个元素。
- 看后面的元素是否比当前元素小,如果是,则交换两者的值。否则,不用交换。
动图展示:
2.代码实现
import java.util.Arrays;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
         int[] arr = new int[7];
        for (int i = 0; i < arr.length; i++) {
                    arr[i] = scanner.nextInt();
                }
        scanner.close();
        //遍历前n-1个元素
        for(int i=0;i<6;i++){
            //遍历当前元素之后的所有元素
            for(int j=i+1;j<7;j++){
                //如果后面的比当前元素小,则交换两者的值
                if(arr[i]>arr[j]){
                    int temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }
        }
        for (int k = 0;k < arr.length; k++) {
                    System.out.print(arr[k]+" ");
                 }
        }
}
3.复杂度分析
- 时间复杂度:总共两层循环,最多交换次,所以时间复杂度为。
- 空间复杂度:不需要额外的空间,所以空间复杂度为。
xqxls的题解 文章被收录于专栏
 牛客题解
 查看11道真题和解析
查看11道真题和解析