2020年11月8日星期日

选择排序

选择排序算法的原理是找到数组中最小的元素,然后将它和数组第一个元素交换,接着在剩下的元素中找到最小的元素,接着和数组第二个元素交换,以此类推,直到将所有元素排序完毕

简单实现如下:

 1 package 选择排序; 2  3 public class DemoMain { 4  public static void main(String[] args) { 5   Integer[] a = {5, 2, 6, 3, 4, 7}; 6   sort(a); 7   System.out.println(isSorted(a)); 8   show(a); 9  }10 11  /**12   * 排序13   * @param a 排序的数组14  */15  public static void sort(Comparable[] a) {16   for (int i = 0; i < a.length - 1; i++) {17    //获取当前要交换元素的下标18    int index = i;19    //找到最小的元素,将下标赋值给index20    for (int j = i + 1; j < a.length; j++) {21     if (less(a[index], a[j])) {22      index = j;23     }24    }25    //传递要交换的元素的下标i和最小值的下标index26    exch(a, i, index);27   }28  }29 30  /**31   * 比较大小,v > w的值大于032   * 使用compareTo是因为引用类型实现了Comparable接口33   * @param v 排序方法中传递的参数134   * @param w35   * @return 返回判断结果36  */37  private static boolean less(Comparable v, Comparable w) {38   return v.compareTo(w) > 0;39  }40 41 42  /**43   * 交换位置44   * @param a 数组45   * @param i 两个交换元素的下标46   * @param j47  */48  private static void exch(Comparable[] a, int i, int j) {49   Comparable temp;50   temp = a[i];51   a[i] = a[j];52   a[j] = temp;53  }54 55  /**56   * 显示数据57   * @param a58  */59  private static void show(Comparable[] a) {60   for (int i = 0; i < a.length; i++) {61    if (i == a.length - 1) {62     System.out.print(a[i]);63    } else {64     System.out.print(a[i] + ",");65    }66   }67  }68 69  /**70   * 简单的判断是否排序成功71   * @param a 排序后的数组72   * @return 返回一个bool值73  */74  private static boolean isSorted(Comparable[] a) {75   for (int i = 0; i < a.length - 1; i++) {76    if (less(a[i], a[i + 1])) {77     return false;78    }79   }80   return true;81  }82 }

 

原文转载:http://www.shaoqun.com/a/489501.html

photobucket:https://www.ikjzd.com/w/132

东杰智能:https://www.ikjzd.com/w/1967

好东东网:https://www.ikjzd.com/w/1238


选择排序算法的原理是找到数组中最小的元素,然后将它和数组第一个元素交换,接着在剩下的元素中找到最小的元素,接着和数组第二个元素交换,以此类推,直到将所有元素排序完毕简单实现如下:1package选择排序;23publicclassDemoMain{4publicstaticvoidmain(String[]args){5Integer[]a={5,2,6,3,4,7};6sort(a);7Syst
拍拍购物:https://www.ikjzd.com/w/2205
阿里巴巴 批发:https://www.ikjzd.com/w/1084
2020春晚主持人有谁?2020春节联欢晚会嘉宾分会场具体:http://tour.shaoqun.com/a/73368.html
龙凤山庄2020春节玻璃桥开放吗?2020东莞龙凤山庄过年:http://tour.shaoqun.com/a/33227.html
2020深圳野生动物园五一开放项目有哪些?深圳野生动物园新:http://tour.shaoqun.com/a/47234.html

没有评论:

发表评论