最近需要复习了一下排序算法,因此用javascript和python写了这个选择排序的算法来比较。
- javascript 选择排序算法
<!DOCTYPE html>
<meta charset="utf-8">
<title>Selection Sort</title>
<style>
input{
border-color: lightblue;
height: 30px;
border-style: double;
}
button{
height:30px;
width:50px;
background-color: orange;
}
</style>
<script type="text/javascript">
function swap(myArray,p1,p2){
var temp=parseInt(myArray[p1]);
myArray[p1]=parseInt(myArray[p2]);
myArray[p2]=parseInt(temp);
}
function SelecttionSort(myArray){
var len=myArray.length;
var min; //假定设置一个最小值
for (var i = 0; i < len; i++) {
min=i;
for (var j = i+1; j< len; j++) { //检查剩余的数中有没有更小的数,有的话替换它
if(parseInt(myArray[j])<parseInt(myArray[min])){
min=j;
}
}
if(i!=min){ //替换最小数的位置
swap(myArray,i,min);
}
}
return myArray;
}
function msort(){
var my=new Array();
var fd=document.getElementById("ui").value;
var my=fd.split(",");
//alert(SelecttionSort(my));
document.getElementById("iu").value=SelecttionSort(my);
}
</script>
<body>
<input id="ui" placeholder="输入要排序的数组" type="text" οnkeydοwn="this.onkeyup();" οnkeyup="this.size=(this.value.length>=2?this.value.length:2); " size="40" >
<hr>
<button type="button" οnclick="msort()">Sort</button>
<hr>
<input id="iu" placeholder="结果" type="text" οnkeydοwn="this.onkeyup();" οnkeyup="this.size=(this.value.length>=2?this.value.length:2); " size="40" >
</body>
</html>
其中,用户输入用“,”分隔开的数组之后。点击sort 就可以得到排序后的数组了。如图
2. python下的选择排序算法
感觉python的交换数值很神奇。竟然不需要引入第三变量,两个变量就可以自己转换。