冒泡排序以及选择排序代码实现
Posted java小小日记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序以及选择排序代码实现相关的知识,希望对你有一定的参考价值。
冒泡排序 : 比较相邻的元素。
选择排序 : 以某个元素为主,从头至尾扫描序列,找出最值,位置交换
冒泡排序代码实现
1.手写冒泡
//遍历数组中每一个元素
for(int i=0;i<arr.length;i++){
//每遍历完一个元素,就会确定出当前遍历这个数组长度中一个最值,下一次遍历就不需要考虑
for(int j=0;j<arr.length-1-i;j++){
//如果前一个数比后一个数大,我们就跟这两个元素做值交换
if(arr[i]>arr[i+1]){
int s=arr[i];
arr[i]=arr[i+1];
arr[i+1]=s;
}
}
}
//至此循环结束,我们得到一个正序排序的数组
2.递归冒泡
public static int[] fun(int[] arr,int length){
//得到一个乱序的数组以及要便利的范围
for(int i=0;i<length-1;i++){
//如果前一个数比后一个数大,我们就跟这两个元素做值交换
if(arr[i]>arr[i+1]){
int s=arr[i];
arr[i]=arr[i+1];
arr[i+1]=s;
}
}
//当length为1的时候说明遍历已经结束,直接返回结果
if(length==1){
return arr;
}
//进行下一次遍历,此时已经确定最后一个值为当前遍历这个数组长度中一个最值,下次循环不予考虑
return fun(arr,length-1);
}
选择排序代码实现
// 1. 外层for循环控制选择的轮数
for(int i=0;i<num.length-1;i++){
// 2. 内层for循环:控制每轮比较的次数
for(int j=i+1;j<num.length;j++){
if(num[i]>num[j]){
int temp = num[i];
num[i]=num[j];
num[j]=temp;
}
}
}
以上是关于冒泡排序以及选择排序代码实现的主要内容,如果未能解决你的问题,请参考以下文章
直接插入排序 ,折半插入排序 ,简单选择排序, 希尔排序 ,冒泡排序 ,快速排序 ,堆排序 ,归并排序的图示以及代码,十分清楚