浅解冒泡排序与插入排序的区别

来源:互联网 发布:excel数据恢复打开乱码 编辑:程序博客网 时间:2024/06/05 00:29

作为排序中的基础的冒泡排序与插入排序有什么不同,简单整理如下:

 

最后的顺序

比较方式

前提条件

冒泡排序

由小到大

比较相邻的两个数字

满足要求的同类型元素

插入排序

保持原来的顺序

元素依次与每个元素比较,直到满足条件为止

原来的数列是有序的


冒泡排序代码(java-eclipce):

public class Maopaopaixu {

public static void main(String[] args) {
// TODO Auto-generated method stub

int[] numberArr={7,2,9,1,6};
int intermediateVariable;
for (int i = 0; i < numberArr.length; i++) {
//如果第i个数比第i+1个数大,那么交换两个数字的位置
for(int j=0;j<numberArr.length-1;j++){
if (numberArr[j]>numberArr[j+1]) {
intermediateVariable=numberArr[j];
numberArr[j]=numberArr[j+1];
numberArr[j+1]=intermediateVariable;
}
}
}
System.out.print("最后结果:\t");
for (int i = 0; i < numberArr.length; i++) {
System.out.print(numberArr[i]+"\t");
}
}
}


插入排序(java-eclipce):

package Paixv;
public class ChaRuPaiXv { //插入排序
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] shuLieArr={8,0,3,5,6,5};//定义原数组
int[] resultArr=new int[shuLieArr.length];//接收返回数组
ChaRuPaiXv method=new ChaRuPaiXv();//声明实例
resultArr=method.ChaRuPaiXvArr(shuLieArr);
for (int i = 0; i < resultArr.length; i++) {
System.out.print(resultArr[i]+"\t");
}
}//主方法
//方法
public int[] ChaRuPaiXvArr(int[] shuLieArr){ //插入排序方法
int exchange;
for (int i = 0; i < shuLieArr.length-1; i++) {
exchange=shuLieArr[i+1];
for (int j = i+1; j >0; j--) {
if(exchange<shuLieArr[j-1]){
shuLieArr[j]=shuLieArr[j-1];
shuLieArr[j-1]=exchange;
}
}
}
return shuLieArr;
}//方法结束
}

 

如有漏洞之处,还望轻喷!


0 0