黑马程序员技术交流社区

标题: 老师讲的例子 [打印本页]

作者: 华子    时间: 2014-6-17 21:48
标题: 老师讲的例子
public class arraysort
{
        public static void main(String[] args)
        {
                int arr[]={3,6,1,8,2};
                getscanf(arr);
                System.out.println();
                getsort(arr);
                 getscanf(arr);   
        }
        public static void getsort(int[] arr)
        {
                for(int i=0;i<arr.length-1;i++)
                {
                        for(int x=i+1;x<arr.length;x++)
                        {
                        if(arr[i]>arr[x])
                          {
                                int a=arr[i];
                               arr[i]=arr[x];
                               arr[x]=a;
                          }
                        }
                }
        }
        public static void getscanf(int[] arr)
        {
                System.out.print('[');
                for(int m=0;m<arr.length;m++)
                {
                        System.out.print(arr[m]);
                        System.out.print(' ');
                }
                System.out.print(']');
        }
}


作者: 江夷    时间: 2014-6-17 21:54
你的问题是什么?
作者: 人心如水    时间: 2014-6-17 22:09
亲,你的问题是什么,代码间给点中文吧!
作者: wangmin    时间: 2014-6-17 22:35
问题???代码给点注释吧
作者: love~陌    时间: 2014-6-18 00:07
  1. package com.itcast.day01;

  2. public class Arraysort// 首先,这里,少年,你的类名就不符合命名规范,这个是我修改后的
  3. {
  4.         public static void main(String[] args) {
  5.                 int arr[] = { 3, 6, 1, 8, 2 };
  6.                 getscanf(arr);
  7.                 System.out.println();
  8.                 getsort(arr);
  9.                 getscanf(arr);
  10.         }

  11.         public static void getsort(int[] arr) {
  12.                 for (int i = 0; i < arr.length - 1; i++) {
  13.                         for (int x = i + 1; x < arr.length; x++) {
  14.                                 if (arr[i] > arr[x]) {
  15.                                         //两个数交换位置,你这里程序效率太低,每次换位置都需要创建一个int a这么一个变量
  16.                                         int a = arr[i];
  17.                                         arr[i] = arr[x];
  18.                                         arr[x] = a;
  19.                                 }
  20.                         }
  21.                 }
  22.         }

  23.         public static void getscanf(int[] arr) {
  24.                 System.out.print('[');
  25.                 for (int m = 0; m < arr.length; m++) {
  26.                         //下面这两条输出语句完全没必要这么写,可以整合到一起的
  27.                         System.out.print(arr[m]);
  28.                         System.out.print(' ');
  29.                 }
  30.                 System.out.print(']');
  31.         }
  32. }
复制代码

作者: love~陌    时间: 2014-6-18 00:20
  1. package com.itcast.day01;

  2. public class Arraysort
  3. {
  4.         public static void main(String[] args) {
  5.                 //定义原数组
  6.                 int arr[] = { 3, 6, 1, 8, 2 };
  7.                 //输出原数组
  8.                 getscanf(arr);
  9.                 //原数组排序
  10.                 getsort(arr);
  11.                 //输出排序后的数组
  12.                 getscanf(arr);
  13.         }
  14.        
  15.         //给数组排序
  16.         public static void getsort(int[] arr) {
  17.                
  18.                 for (int i = 0; i < arr.length - 1; i++) {
  19.                        
  20.                         for (int x = i + 1; x < arr.length; x++) {
  21.                                
  22.                                 if (arr[i] > arr[x])
  23.                                        
  24.                                         swap(arr,i,x);
  25.                                
  26.                         }
  27.                        
  28.                 }
  29.                
  30.         }
  31.         //输出数组
  32.         public static void getscanf(int[] arr) {
  33.                
  34.                 System.out.print("["+arr[0]+",");
  35.                
  36.                 for (int i = 1; i < arr.length-1; i++) {
  37.                        
  38.                         System.out.print(arr[i]+",");
  39.                        
  40.                 }
  41.                
  42.                 System.out.println(arr[arr.length -1]+"]");
  43.         }
  44.        
  45.         //将数组中两个元素交换位置的功能封装成为一个函数
  46.         public static void swap(int [] arr,int a,int b){
  47.                 //既然是两个int类型数据交换位置,那么我们可以采用效率高一些的方法来完成这个动作
  48.                 arr[a] = arr[a]^arr[b];
  49.                 arr[b] = arr[a]^arr[b];
  50.                 arr[a] = arr[a]^arr[b];
  51.         }
  52. }
复制代码

少侠,这是你想要的么?





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