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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /*
  2. * 数组排序之[选择排序]:(本质:不断挑选剩余元素中的最小者)
  3. * 分析:
  4.          * 1、定义一个数组
  5.          * 2、因为涉及到交换,所以定义一个数组中两个位置上元素交换的方法
  6.          * 3、找到数组中最小的元素,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换)
  7.          * 4、在剩下到元素中找到最小的元素,将它与数组中的第二个元素交换位置,
  8.          * 5、循环这个过程,直到整个数组排序
  9. */
  10. public class SimpleIteration {

  11.         /**
  12.          * @param args
  13.          */
  14.         public static void main(String[] args) {
  15.                 // 定义一个数组
  16.                 int[] qm = {11,13,7,8,1,3,4,2};
  17.                 //调用选择排序方法
  18.                 selectSort(qm);
  19.                 //遍历打印数组元素
  20.                 for(int s : qm ) {
  21.                         System.out.print(s + " ");
  22.                 }
  23.         }

  24.         //选择排序
  25.         /*找到数组中最小的元素,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换)
  26.          * 在剩下到元素中找到最小的元素,将它与数组中的第二个元素交换位置,
  27.          * 循环这个过程*/
  28.         public static void selectSort(int[] arr){
  29.                 for (int i = 0; i < arr.length-1; i++) {       
  30.                         int min = i;
  31.                         for (int j = i+1; j < arr.length; j++) {
  32.                                 if (arr[j]< arr[min]) {
  33.                                         min = j;
  34.                                 }
  35.                         }
  36.                         //每一次找出当时数组最小值的索引后,调用方法交换元素位置
  37.                         swap(arr, i, min);
  38.                 }
  39.         }

  40.         /**
  41.          * 因为涉及到交换,所以定义一个数组中两个位置上元素交换的方法
  42.          * 交换数组中两个元素的位置
  43.          * @param arr
  44.          * @param i
  45.          * @param j
  46.          */
  47.         private static void swap(int[] arr, int i, int j) {
  48.                 int temp = arr[j];
  49.                 arr[j] = arr[i];
  50.                 arr[i] =temp;
  51.         }
  52. }
复制代码


1 个回复

倒序浏览
点招常考题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马