排序之选择排序(java)

来源:互联网 发布:作为打印机网络主机 编辑:程序博客网 时间:2024/05/17 10:53

算法入门

1、选择排序(思想)

假设有一个长度为n的数组。

   首先,假设第一个元素最小,然后我们从数组下标为1 -  n-1 个元素与当前最小进行比较若比其小,则将下标进行交换,一直比较,直到比较到n-1为止,然后交换此时的下标为min的元素a[min]与a[o]进行交换;然后将第二个元素假设为最小,然后我们从数组下标为2-  n-1 个元素与当前最小进行比较若比其小,则将下标进行交换,一直比较,直到比较到n-1为止,然后交换此时的下标为min的元素a[min]与a[o]进行交换.如此反复,一直到整个数组有序。

2、代码实现

package test01;public class SwitchSort1 {public static void sort(Comparable[] a){int  N = a.length;for(int i=0;i<N;i++){int min =i;for(int j=i+1;j<N;j++){if(less(a[j], a[min])){min =j;}}exch(a, i, min);}}private static boolean less(Comparable v,Comparable w){return v.compareTo(w) <0;}private static void exch(Comparable[] a,int i,int j){Comparable t = a[i];a[i] =a[j];a[j] =t;}private static void show(Comparable[] a){for(int i=0;i<a.length;i++){System.out.print(a[i]+" ");}System.out.println();}public static boolean isSorted(Comparable[] a){//测试数组是否有序for(int i=1;i<a.length;i++){if(less(a[i],a[i-1])){return false;}}return true;}public static void main(String[] args) {Integer a[] ={3,4,5,6,74,334,444,23,33};sort(a);show(a);}}














原创粉丝点击