插入排序
要找到合适的位置,需要判断前一个元素比t小而后一个元素比t大。然后将t插入正确位置。
比较a[j-1] 跟 a[j] 的关系很关键
package contcurrentandalgorithm;
/**
*
* @author Administrator
* zyyjiao@mail.ustc.edu.cn
*/
public class Sort1 {
public static void main(String[] args) {
int a[] = {1, 3, 9, 4, 7, 6};
int t = 0;
int temp;
for (int i = 0; i < a.length; i++) {
for (int j = i; j > 0 && a[j - 1] > a[j]; j--) {
temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
for(int k=0;k<a.length;k++){
System.out.print(a[k]);
}
}
}
下面是一个优化
package contcurrentandalgorithm;
/**
*
* @author Administrator
* zyyjiao@mail.ustc.edu.cn
*/
public class Sort2 {
public static void main(String[] args) {
int a[] = {1, 3, 9, 4, 7, 6};
int t;
int j;
for (int i = 1; i < a.length; i++) {
t = a[i];
for (j = i; j > 0 && a[j - 1] > t; j--) {
a[j] = a[j - 1];
}
a[j] = t;
}
for (int k = 0; k < a.length; k++) {
System.out.print(a[k]);
}
}
}