冒泡排序
冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。较大的数慢慢往后排,较小的数慢慢往前排,这个过程就像气泡慢慢浮出水面,所以叫冒泡排序。
- 冒泡排序的过程
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
代码实现
var arr = [4,1,3,6,5,7];
function compare(a,b){//比较之后需要得出是否需要交换
if (a > b) return true;
else return false;
}
function exchange(arr,a,b){//将数组中ab位置里的值进行交换
var temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
function sort(arr){
for (var i = 0;i < arr.length; i++){
for (var j = 0;j < arr.length - 1 -i; j++){
if (compare(arr[j],arr[j + 1])){
exchange(arr,j,j + 1);
}
}
}
}
sort(arr);
console.log(arr);
选择排序
选择排序是先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
代码实现
var arr = [4,1,3,6,5,7];
function compare(a,b){//比较之后需要得出是否需要交换
if (a < b) return true;
else return false;
}
function exchange(arr,a,b){//将数组中ab位置里的值进行交换
var temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
//选择排序,内层循环,每一圈选出一个最大的,然后放在后面
function sort(arr){
for (var i = 0;i < arr.length; i++){
var maxIndex = 0;
for (var j = 0;j < arr.length-i; j++){
if (compare(arr[maxIndex],arr[j])){
maxIndex = j;
}
}
exchange(arr,maxIndex,arr.length - 1 -i);
}
}
sort(arr);
console.log(arr);
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!