A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© boboyuwu 高级黑马   /  2016-1-31 20:09  /  6920 人查看  /  33 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

14黑马币
来来来

最佳答案

查看完整内容

for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j < arr.length; j++) { if(arr > arr[j]) { int temp = arr; arr = arr[j]; arr[j] = temp;} } } 还可以调用方法Arrays.sort(arr); System.out.println(Arrays.toString(arr));

33 个回复

倒序浏览
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;}                              }                            } 还可以调用方法Arrays.sort(arr); System.out.println(Arrays.toString(arr));
回复 使用道具 举报
public class Test {         // 排序的方法         public static void selectSort(int[] arr) {                 for (int x = 0; x < arr.length - 1; x++) {                         for (int y = x + 1; y < arr.length; y++) {                                 if (arr[x] > arr[y]) {                                         int temp = arr[x];                                         arr[x] = arr[y];                                         arr[y] = temp;                                  }                         }                 }                 // 循环遍历                 for (int i = 0; i < arr.length; i++) {                         System.out.println(arr[i]);                 }         }          public static void main(String[] args) {                 int[] a = { 3, 7, 2, 8, 5 };// 定义数组                 // 调用方法                 selectSort(a);         } }
回复 使用道具 举报
刚刚那个太不清楚了,上传了张图片

}6`4B~%Z4(CDPP`IE9I_B_F.png (151.43 KB, 下载次数: 27)

}6`4B~%Z4(CDPP`IE9I_B_F.png
回复 使用道具 举报
只是看写好的代码,并不能解决问题!一定要亲自动手,把它的过程,一步一步的分解出来!代码体现的出来的,都是解决过程汇总出来的!有时候没法直接从代码中看出整个的过程!
回复 使用道具 举报
  1. public static void selectSort(int[] arr) {
  2.         int temp;
  3.         for (int i = 0; i < arr.length - 1; i++) {
  4.                 for (int j = i+1; j < arr.length; j++) {
  5.                         if (arr[i] > arr[j]) {
  6.                                 temp = arr[i];
  7.                                 arr[i] = arr[j];
  8.                                 arr[j] = temp;
  9.                         }        
  10.                 }
  11.         }
  12.         for (int i = 0; i < arr.length; i++) {
  13.                 System.out.println(arr[i]);
  14.         }
  15. }
复制代码
回复 使用道具 举报
  1. public static void bubble(int[] arr) {
  2.         int temp;
  3.         for (int i = 0; i < arr.length - 1; i++) {
  4.                 for (int j = i+1; j < arr.length; j++) {
  5.                         if (arr[i] > arr[j]) {
  6.                                 temp = arr[i];
  7.                                 arr[i] = arr[j];
  8.                                 arr[j] = temp;
  9.                         }        
  10.                 }
  11.         }
  12.         for (int i = 0; i < arr.length; i++) {
  13.                 System.out.println(arr[i]);
  14.         }
  15. }
复制代码
回复 使用道具 举报
在要排序的一组数中找到最小的数,和第一个数交换位置,再从剩下的数找到最小的和第二个数交换位置,依次循环直到倒数第二个数和最后一个数比较为止
回复 使用道具 举报
huijiadanipp 发表于 2016-2-2 13:18
在要排序的一组数中找到最小的数,和第一个数交换位置,再从剩下的数找到最小的和第二个数交换位置,依次循 ...

相当于有n-1辞循环,每次循环后要进行比较的数为n-i个,所以用两次for循环比较合适
回复 使用道具 举报
凑热闹来了
回复 使用道具 举报
老师的视频里面讲的很清楚了,为什么不去看视频呢
回复 使用道具 举报
思路基本就是第一个for循环是遍历,从第一个到倒数第二个,第二个for循环控制比较,每次都用开始的那个数和后边的逐个去比较,如果大了就交换就好了
回复 使用道具 举报
选择排序思路就行
回复 使用道具 举报
这个在视频中就有了,自己去看才能理解,他们粘贴个代码你理解不了的,给他们黑马币浪费了,给我吧! 哈哈  视频再官网基础视频--第13天--第15个视频(里面讲的很详细了)
回复 使用道具 举报
public static void bubble(int[] arr) {
        int temp;
        for (int i = 0; i < arr.length - 1; i++) {
                for (int j = i+1; j < arr.length; j++) {
                        if (arr[i] > arr[j]) {
                                temp = arr[i];
                                arr[i] = arr[j];
                                arr[j] = temp;
                        }        
                }
        }
        for (int i = 0; i < arr.length; i++) {
                System.out.println(arr[i]);
        }
}
回复 使用道具 举报
  1. class Arrse
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int[] arr={5,1,6,4,2,8,9};
  6.                 print(arr);//排序前打印
  7.                 selectSort(arr);//排序
  8.                 print(arr);//排序后打印
  9.         }
  10.         public static void selectSort(int[] arr)
  11.         {
  12.                 for (int x=0;x<arr.length-1;x++)
  13.                 {
  14.                         for (int y=x+1;y<arr.length;y++)
  15.                         {
  16.                                 if (arr[x]>arr[y])
  17.                                 {
  18.                                         int temp=arr[x];
  19.                                         arr[x]=arr[y];
  20.                                         arr[y]=temp;
  21.                                 }
  22.                         }
  23.                 }
  24.         }
  25.         public static void print(int[] arr)
  26.         {
  27.                 System.out.print("[");
  28.                 for (int x=0;x<arr.length ;x++ )
  29.                 {
  30.                         if (x!=arr.length-1)
  31.                         {
  32.                                 System.out.print(arr[x]+",");
  33.                         }
  34.                         else
  35.                                 System.out.println(arr[x]+"]");
  36.                 }
  37.         }
  38. }
复制代码


以上为代码,这个应该是最基本的做法了,下面附上原理图:
回复 使用道具 举报
我是来顶贴的
回复 使用道具 举报
zxw1133 来自手机 中级黑马 2016-2-5 14:50:04
18#
新年到,也要好好学习,这个年,注定难忘。
回复 使用道具 举报
给你个最终版
public  void selectSort(int[] arr){
    for(int i=0;i<arr.length-1;i++){        //遍历数组里面(除最后一个元素)的元素
         for(int j=i+1;j<arr.length){         //把遍历到的元素和他后面所有的元素进行对比
             if(arr[i]>arr[j]){                     //如果后面有比他小的元素就替换他们的位置 每次都使小的在前面
                  arr[i]=arr[i]^arr[j];
                  arr[j]=arr[i]^arr[j];
                  arr[i]=arr[i]^arr[j];

                  
}
}
}
}
回复 使用道具 举报
本帖最后由 陈梦佳 于 2016-2-8 10:44 编辑
  1. public class selectSortArray {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                 int[]array={2,8,1,3,9,4};                          //定义一个需要排序的数组
  8.                 selectSort(array);                                  //调用选择排序方法
  9.                 for (int i = 0; i < array.length; i++) {   //循环打印排序后的数组元素
  10.                         System.out.print(array[i]+" ");
  11.                 }
  12.                

  13.         }

  14.         public static void selectSort(int[] array) {
  15.                 // TODO Auto-generated method stub
  16.                 for (int i = 0; i < array.length-1; i++) {         //外循环控制比较次数
  17.                         for (int j = i+1; j < array.length; j++) { //内循环控制比较元素
  18.                         if (array[i]>array[j]) {
  19.                                 int temp=array[i];                        //定义一个中间变量存放较大的元素
  20.                                 array[i]=array[j];                           //元素较小的值赋给较大元素
  21.                                 array[j]=temp;                             //元素较大的值赋给较小元素
  22.                                 
  23.                         }
  24.                                 
  25.                         }
  26.                         
  27.                 }
  28.         }

  29. }
复制代码
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马