java中常见的3种算法
- 选择排序
//定义一个数组并将其初始化
int[] array={0,1,4,3,2};
//开始进行循环的步骤
for(int i=0;i<array.length;i++){
//将数组中的每个元素都提出来进行判断排序
for(int j=i+1;j<array.length;j++){
//将上面数组中提出来的元素与其他元素进行遍历对比
if(array[i]>array[j]){
//进行由小到大的排序(temp是一个中间变量)
int temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
- 冒泡排序
//定义一个数组并将其初始化
int[] array={0,1,4,3,2};
//开始进行循环的步骤
for(int i=0;i<array.length;i++){
//上面代码是判断数组要进行几轮对比的次数
for(int j=0;j<array.length-i;j++){
//上述代码是判断数组的大小顺序
if(array[j]>array[j+1]){
//进行由小到大的排序(temp是一个中间变量)
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
3**. 插入排序**
//定义一个数组并将其初始化
int[] array={0,1,4,3,2};
//定义一个插入时的标签
int temp;
for(int i=1;i<array.length;i++){
if(array[i]<array[i-1]{
temp=array[i];
int j=i-1;
for(j;j>=0&&temp>array[j];j--){
array[j+1]=array[j];
}
array[j+1]=temp;
}
}
- 以上三种排序的区别有:
相较于选择排序,冒泡排序是不满足条件时才会进行互换,而插入则是一直当后面的元素小于前面的元素才会进行排序,所以从稳定性上来说冒泡排序和插入排序比起选择排序更具有稳定性。