1、选择排序算法
选择排序算法的思想:如一个数组:a={2,5,0,8,3}
第一次把这个数组中最小的元素和a[0]交换位置,变成 :{0,5,2,8,3}
第二次把a[1]到a[4]这4个元素中最小的和a[1]交换位置,变成:{0,2,5,8,3}
第三次把a[2]到a[4]这3个元素中最小的和a[2]交换位置,变成 :{0,2,3,8,5}
第四次把a[3]到a[4]这2个元素中最小的和a[3]交换位置,变成 :{0,2,3,5,8}
总结一下:
public class Xuanze {
public static void main(String[] args) {
int [] a={5,79,2,99,12,65,70,23,10,78};
int tmp;
for(int i=0;i<a.length-1;i++) { //外循环控制交换次数:a[0]到a[8]的位置确定后,a[9]就确定了
for(int j=i+1;j<a.length;j++) {//内循环控制每次交换前的比较:如果a[i]这个位置本来就是最小的,就不用去交换了,如果不是从i+1这个位置开始找最小的
if(a[j]<a[i]) {
tmp=a[j];
a[j]=a[i];
a[i]=tmp; //这三句代码的顺序有讲究
}
}
}
for(int k=0;k<a.length;k++) {
System.out.print(a[k]+" ");
}
}
}
2、冒泡排序:
冒泡排序算法的思想:如一个数组:a={8,5,3,2,0}
第一次把a[0]和a[1],a[1]和a[2],a[2]和a[3],a[3]和a[4]进行比较,把最大的交换到最后面:{5,3,2,0,8}
第二次把a[0]和a[1],a[1]和a[2],a[2]和a[3]进行比较,把第二大的交换到倒数第二:{3,2,0,5,8}
第三次把a[0]和a[1],a[1]和a[2]分别进行比较,把第三大的交换到倒数第三:{2,0,3,5,8}
第四次把a[0]和a[1],把第四大的交换到倒数第四:{0,2,3,5,8}
public class Maopao {
public static void main(String[] args) {
int [] a={5,79,2,99,12,65,70,23,10,78};
int tmp;
for(int i=0;i<a.length-1;i++) {//外循环控制一共需要多少轮两两比较 (9轮)
for(int j=0;j<a.length-1-i;j++) {//内循环控制每轮两两比较的次数(9,8,7,6,5,4,3,2,1)
if(a[j]>a[j+1]) {
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
for(int k=0;k<a.length;k++) {
System.out.print(a[k]+" ");
}
}
}
3、二分查找: