记录一下选择排序与冒泡排序的基本写法:
一、选择排序
先来一张图解:
代码:
<!--
选择排序?
永远拿第一个与后面的每一个进行比较,如果第一个比后面的大,那么就把第一个与后面大的交换。
-->
<script type="text/javascript">
var arr=[2,5,8,1,4];
console.log(arr)
/*
//思路:拿第一与后面的比较,如果第一个比后面的大就交换
//第1次
for (var i = 1; i < arr.length; i++) {
if(arr[0]>arr[i])
{
var temp=arr[0];
arr[0]=arr[i];
arr[i]=temp;
}
}
console.log(arr);
//第2次
for (var i = 2; i < arr.length; i++) {
if(arr[1]>arr[i])
{
var temp=arr[1];
arr[1]=arr[i];
arr[i]=temp;
}
}
console.log(arr);
//第3次
for (var i = 3; i < arr.length; i++) {
if(arr[2]>arr[i])
{
var temp=arr[2];
arr[2]=arr[i];
arr[i]=temp;
}
}
console.log(arr);
//第4次
for (var i = 4; i < arr.length; i++) {
if(arr[3]>arr[i])
{
var temp=arr[3];
arr[3]=arr[i];
arr[i]=temp;
}
}
console.log(arr);
*/
//选择排序的终极写法
for (var k = 0; k < arr.length-1; k++) {
for (var i = k+1; i < arr.length; i++) {
if(arr[k]<arr[i])
{
var temp=arr[k];
arr[k]=arr[i];
arr[i]=temp;
}
}
}
console.log(arr);
</script>
二、冒泡排序
图解:
代码:
<script type="text/javascript">
//冒泡排序
//永远拿相邻的连个元素进行比较,并交换位置(交换他们之间的值)
var arr=[2,5,8,1,4,1,3,5,79,11,1,3,5,7,24,32,25,48];
console.log(arr);
/*过程写法
//第一次冒泡
for (var i = 0; i < arr.length-1; i++) {
if(arr[i]>arr[i+1])
{
var temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
console.log(arr);
//第二次冒泡
for (var i = 0; i < arr.length-2; i++) {
if(arr[i]>arr[i+1])
{
var temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
console.log(arr);
//第三次冒泡
for (var i = 0; i < arr.length-3; i++) {
if(arr[i]>arr[i+1])
{
var temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
console.log(arr);
//第四次冒泡
for (var i = 0; i < arr.length-4; i++) {
if(arr[i]>arr[i+1])
{
var temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
console.log(arr);
*/
//终极写法
//比较的次数问题
for (var j = 1; j < arr.length; j++) {
//arr[i]
//document.write(i+"<br/>");
for (var i = 0; i < arr.length-j; i++) {
if(arr[i]<arr[i+1])
{
var temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
console.log(arr);
</script>
文章仅为本人学习过程的一个记录,仅供参考,如有问题,欢迎指出