【算法】第二章排序
##目录 初级排序 选择排序 插入排序 希尔排序 归并排序 自顶向下排序 自底向上排序 快速排序 优先队列 ##初级排序 ###一、 选择排序 简述 :选择排序就是遍历一遍数组把最小的和第一个数字交换。第二遍遍历数组时候选择和第二个交换,一次类推。 //注意不要在for循环中用a.length()不然每次都要获取a.length(); public voiv sort(Comparable[] a){ //for(int i=0,i<a.length;i++){ int N = a.length; for(int i=0,i<N;i++){ int min = i; for(int j=i+1;j<N;j++){ //if(a[min]>a[j]){ if(less(a[j],a[min])){ min = j; } //int tmp = a[i]; //a[i] = a[min]; //a[min] = tmp; exch(a,j,min); } } } ###二、 插入排序 简述 :类似于打牌时候边抽牌边整理。第二张开始,就最大的开始对比,然后直到不大时候插入。 public void sort(Comparable[] a){ int N = a.length; //下面是我写的,不知道书上有什么优势。有空测一下。 //for(int i=1;i<N;i++){ // if