这个相对简单点,我想法是锁定每一次排序的逻辑表达,截断数组,就是找到最小的拿出来,放前面,再找出最小的放剩下的部分的前面。
类部分:selection_sort. Java
类部分:selection_sort. Java
package algorithm;
public class selection_sort {
private int right;
private static int number=0;//计次器
public void selection_one(double[] p){//做一次排序
for(right=1+number;right<p.length;right++){
if(p[number]>p[right]){
double key=0;
key=p[right];
p[right]=p[number];
p[number]=key;
}
}
number++;
}
public void selection_complete(double[] p){//完全排序完成的函数
while(number<p.length){
selection_one(p);
}
}
// public static int getNumber() {
// return number;
// } 方便观察每趟的变化
// public static void setNumber(int number) { 可以试着读出number的值
// selection_sort.number = number;
// }
public void display(double[] p){//显示数组效果
for(int i=0;i<p.length;i++){
System.out.println(p[i]);
}
}
}
测试text
package algorithm;
public class text {
public static void main(String[] args) {
double[] array1={12,23,12,22,43,1};
selection_sort text2=new selection_sort();
text2.selection_complete(array1);
text2.display(array1);
// System.out.println(selection_sort.getNumber()); 试读number
}
}