[Java算法] -- 1. 常用排序之冒泡排序和选择排序

使用Java语言实现冒泡排序和选择排序

 

  推荐一个数据结构可视化的网站:http://zh.visualgo.net/zh (暂时访问不了)

  对排序不太熟悉的朋友,建议去上面的网站学习一下,你将会发现一片大森林~

  废话不多说,献上本人的代码,

  可直接复制粘贴到自己的IDE,查看效果~

 

public class ArrayDemo1 {
    public static void main(String[] args) {
        // 静态初始化测试数组,用于测试排序代码
        int[] arr1 = new int[] { 21, 13, 5, 117, 29, 666, 6, 520, 10000, 1 };
        int[] arr2 = new int[] { 21, 13, 5, 117, 29, 666, 6, 520, 10000, 1 };
        
        System.out.println("未排序时: " + printArr(arr1));
        bubbleSort(arr1);
        System.out.println("排完序后: " + printArr(arr1));
        System.out.println("---------------------------------------");
        
        System.out.println("未排序时: " + printArr(arr2));
        selectSort(arr2);
        System.out.println("排完序后: " + printArr(arr2));
        
        
    }

    /**
     * 冒泡排序
     * 
     * 数组排序之冒泡排序思想:
     *         相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处
     * @param arr
     */
    public static void bubbleSort(int[] arr) {
        for(int i = 0; i < arr.length - 1; i++) {
            for(int j = 0; j < arr.length - 1 - i; j++) {
                if(arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
    
    /**
     * 选择排序
     * 数组排序之选择排序思想:
     *         从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处
     * @param arr
     */
    public static void selectSort(int[] arr) {
        for(int i = 0; i < arr.length - 1; i++) {
            for(int j = i + 1; j < arr.length; j++) {
                if(arr[i] > arr[j]) {
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }

    /**
     * 打印数组
     * @param arr
     */
    public static String printArr(int[] arr) {
        String str = "[";
        
        for(int i = 0; i < arr.length; i++) {
            str += arr[i];
            if(i == arr.length - 1) {
                str += "]";
          break; }
  str += ", ";      }
return str; } }

 

posted @ 2017-11-22 09:32  测试开发修炼笔记  阅读(270)  评论(0)    收藏  举报