选择排序算法的原理是找到数组中最小的元素,然后将它和数组第一个元素交换,接着在剩下的元素中找到最小的元素,接着和数组第二个元素交换,以此类推,直到将所有元素排序完毕
简单实现如下:
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
没有评论:
发表评论