javascript: Sorting Algorithms

javascript 复制代码
//  Sorting Algorithms int JavaScript https://www.geeksforgeeks.org/sorting-algorithms/
/**
* file Sort.js
* 1. Bubble Sort冒泡排序法
* @param arry
* @param nszie
*/
function BubbleSort(arry, nszie)
{
    var i, j, temp;
    var swapped;
    for (i = 0; i < nszie - 1; i++)
    {
        swapped = false;
        for (j = 0; j < nszie - i - 1; j++)
        {
            if (arry[j] > arry[j + 1])
            {
                // Swap arry[j] and arry[j+1]
                temp = arry[j];
                arry[j] = arry[j + 1];
                arry[j + 1] = temp;
                swapped = true;
            }
        }
 
        // IF no two elements were
        // swapped by inner loop, then break
        if (swapped == false)
        break;
    }
	
	return arry
}
/**
*
*/
function swap(arry,xp, yp)
{
    var temp = arry[xp];
    arry[xp] = arry[yp];
    arry[yp] = temp;
}
 /**
* 2 选择排序 Selection Sort
* @param arry
* @param nszie
*/
function SelectionSort(arry,  nsize)
{
    var i, j, min_idx;
 
    // One by one move boundary of unsorted subarray
    for (i = 0; i < nsize-1; i++)
    {
        // Find the minimum element in unsorted array
        min_idx = i;
        for (j = i + 1; j < nsize; j++)
        if (arry[j] < arry[min_idx])
            min_idx = j;
 
        // Swap the found minimum element with the first element
        swap(arry,min_idx, i);
    }
	return arry;
}
 /**
* 3 插入排序 Insertion Sort
* @param arry
* @param nszie
*/
function InsertionSort(arry, nsize) 
{ 
    let i, key, j; 
    for (i = 1; i < nsize; i++)
    { 
        key = arry[i]; 
        j = i - 1; 
   
        /* Move elements of arr[0..i-1], that are 
        greater than key, to one position ahead 
        of their current position */
        while (j >= 0 && arry[j] > key)
        { 
            arry[j + 1] = arry[j]; 
            j = j - 1; 
        } 
        arry[j + 1] = key; 
    }
	return arry;
} 
/**
*
*/
function stringArray(arry, size)
{
	
	var myStr=new Array();
  var i;
  for (i = 0; i < size; i++)
  {
       //getstr=getstr+arry[i].toString() + "<br/>";
	  myStr[i]=arry[i].toString();
	  console.log(arry[i].toString());	 
  }
   console.log(myStr.join("<br/>"));
	return myStr.join(" <br/>");
  //console.log(arry);
 /* var myStr=new Array();
  var getstr="";
  */
	/*
  var i;
  for (i = 0; i < size; i++)
  {
      getstr=getstr+arry[i] + " ";
	  myStr[i]=arry[i].toString();
	  console.log(myStr[i]);
  }	
  return getstr;//myStr.join(" ");*/
}


/**

*/
function printArray(arry, size)
{
  var getstr="";
  var i;
  for (i = 0; i < size; i++)
  {
      console.log(arry[i] + " ");
	  getstr=getstr+arry[i]+" ";
  }
  return getstr;
}

调用:

html 复制代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="ie=edge">	
<title>成长开始,geovindu,涂聚文,Geovin Du</title>
		<meta name="Description" content="geovindu"/>
<meta name="Keywords" content="geovindu"/>
<meta name="author" content="geovindu"/>
	<script  src="js/jquery-3.6.0.js"></script>
	<script src="js/SortAlgorithm/Sort.js"></script>
	<script type="text/javascript">

 $(document).ready(function () {
// 1. Bubble Sort冒泡排序法
var arry = [ 64, 34, 25, 112, 220, 11, 90 ];
var  nzie= arry.length;
var duselect=SelectionSort(arry,nzie);
console.log(duselect)
var geovindu=BubbleSort(arry, nzie);
console.log(geovindu);
var inserttdu=InsertionSort(arry,nzie);
var myStr=new Array();
var i;
  for (i = 0; i < nzie; i++)
  {
       //getstr=getstr+arry[i].toString() + "<br/>";
	  myStr[i]=geovindu[i].toString();
	  console.log(geovindu[i].toString());	 
  }
console.log(myStr.join("<br/>"));
var du=stringArray(arry,nzie);
var du2=stringArray(duselect,nzie);
var du3=stringArray(inserttdu,nzie);
	 
console.log(du);
console.log("Bubble Sorted array: ");
 var getstr=printArray(arry, nzie);
console.log("str:"+getstr)	 
$("#txtgeovindu").html(getstr);
txtgeovindu.innerHTML = getstr;//stringArray(geovindu,nsize);	 
$("#geovindu").html("1.泡冒泡排序Bubble Sorted:<br/>"+myStr.join("<br/>"));
$("#geovindu2").html(du);
$("#geovindu3").html("2.选择排序Selection Sorted:<br/>"+du2);
$("#geovindu4").html("3.插入排序Insertion Sorted:<br/>"+du3);
 });
	</script>
</head>

<body>
<textarea id="txtgeovindu" class="geovindu" name="" cols="30" rows="10"></textarea>
<div id="geovindu"></div>
<div id="geovindu2"></div>
<div id="geovindu3"></div>
<div id="geovindu4"></div>	
</body>
</html>
相关推荐
小尧嵌入式6 分钟前
QT软件开发知识点流程及记事本开发
服务器·开发语言·数据库·c++·qt
哆啦A梦15886 分钟前
商城后台管理系统 04,商品添加-清空列表
javascript·vue.js·elementui
哆啦A梦15887 分钟前
商城后台管理系统 06,类目选择实现
javascript·vue.js·elementui
ByNotD0g21 分钟前
Golang Green Tea GC 原理初探
java·开发语言·golang
qingyun98923 分钟前
使用递归算法深度收集数据结构中的点位信息
开发语言·javascript·ecmascript
努力学习的小廉30 分钟前
【QT(三)】—— 信号和槽
开发语言·qt
哆啦A梦158831 分钟前
【vue实战】商城后台管理系统 01 项目介绍
前端·javascript·vue.js
盼哥PyAI实验室35 分钟前
Python自定义HTTP客户端:12306抢票项目的网络请求管理
开发语言·python·http
这儿有一堆花39 分钟前
Python优化内存占用的技巧
开发语言·python
布茹 ei ai1 小时前
5、基于 GEE 的 Sentinel-1 SAR 地震滑坡变化检测系统:2022 泸定地震案例
javascript·sentinel·遥感·gee·云平台