黑马程序员技术交流社区

标题: 数组选择和冒泡排序法 [打印本页]

作者: 追逐    时间: 2014-3-6 11:08
标题: 数组选择和冒泡排序法
/*
        需求:对数组进行排序     选择排序
        数组[2,7,4,3,5,9,8]
*/
class SortTest {

        //定义一个函数对数组进行排序,运用选择排序法。因为只需要对数组进行排序。所以不需要返回值
        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]) {
                                        arraySort(arr, i, j);
                                }
                        }
                }
        }
       
        //对数组中的数据进行交换
        private static void arraySort(int[] arr, int i , int j) {
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
        }
       
        //写一个函数对数组进行排序,运用冒泡排序法
        public static void bubbleSort(int[] arr) {
                for(int i = 0; i <arr.length; i++) {
                        for(int j = 0; j < arr.length - i - 1; j++){//-i是让每次比较的元素减少,-1是为了避免数组下标越界
                                if(arr[j] > arr[j + 1]) {
                                        arraySort_1(arr, j);
                                }
                        }
                }
        }
       
        //写冒泡排序的数组数据交换
        public static void arraySort_1(int[] arr, int j) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
        }
       
        //写一个函数打印输出数组
        public static void show(int[] arr) {
                System.out.print("[");
                for(int i = 0; i < arr.length; i++) {
                        if(i != arr.length - 1) {
                                System.out.print(arr[i] + ",");
                        } else {
                                System.out.println(arr[i] + "]");
                        }
                       
                }
        }
       
        //写主函数进行测试
        public static void main(String[] args) {
                int[] arr = {2,7,4,3,5,9,8};
               
                //排序前先输出一次
                show(arr);
               
                //对数组进行排序,选择排序函数
                //selectSort(arr);
               
                //对数组进行排序,冒泡排序函数
                bubbleSort(arr);
               
                //输出打印排序后的数组
                show(arr);
        }
       
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2