优秀的编程知识分享平台

网站首页 > 技术文章 正文

和MAX一起学编程(三)——做个简单的排序应用

nanyue 2024-07-18 22:26:39 技术文章 12 ℃

前言

MAX马上就要生初一了,之前学过一段时间python语言,对计算机编程有浓厚兴趣。可原先在PC上写的代码,执行的结果也只能在PC上显示,效果也不够酷炫。听说爸爸有办法可以让代码执行后在手机上秀出来,就很好奇,决定利用这个暑期好好学一下。

通过第一天的学习和尝试,我对XML有了一定的了解,在参考了一些文档和示例后“静态”页面初步完成。接下来需要学习令人感到神奇的javascript语言了。说它神奇,就是它能够让原来“静”的页面“动”起来。用比较“专业”的术语来说,在imag这个框架(爸爸说的一个专有名词)中,XML标签就像一个人的躯壳,而js就是能赋予这个躯体运动能量的和血液。

让我们看一下这里面用到的一些局部代码,对于学习过python或者c++这些语言的同学来说,只要理解下js规范就应该会理解和编写。(大部分计算机高级编程语言是相通的)。在imag代码体系中,这些js代码需要放在专门的<script></script>标签对中。用js编写的函数可以被调用,例如:

<script>
 <![CDATA[
 function bubblesort(){
 var num1 = parseInt($('num1').value);//数字的输入
 var num2 = parseInt($('num2').value);
 var num3 = parseInt($('num3').value);
 var num4 = parseInt($('num4').value);
 var num5 = parseInt($('num5').value);
 var nums = [];
 var t=0;
 nums.push(num1);
 nums.push(num2);
 nums.push(num3);
 nums.push(num4);
 nums.push(num5);
 for(k=0;k<5;++k)
 {
 for(i=0;i<5-k;i++)
 {
 if(nums[i]>nums[i+1])
 {
 t = nums[i];
 nums[i] = nums[i+1];
 nums[i+1] = t;
 }
 }
 }
 var numString = '';
 for(n=0;n<5;n++)
 {
 numString = numString + nums[n] + ' ; ';
 }
 numString - ' ; '
 $('answer').text = JSON.stringify(numString);
 }
 function change()
 {
 var b = $('button');
 b.css('alpha', '0.3');
 $page.setTimeout(function() {
 b.css('alpha', '1')
 }, 500);
 }
 ]]>
</script>


<button onclick="change();bubblesort()">开始排序</button>

onclick事件触发JavaScript中的冒泡排序方法bubblesort()和数字改变方法change()。

上面用js写的函数/方法可以和python/c++的代码做一些对比。

Python冒泡排序法

def bubblesort(number,size):##python冒泡排序法
 t=0
 t=int(t)
 for j in range(0,size-1):
 for k in range(0,size-1):
 if number[k]>number[k+1]
 t=number[k]
 number[k]=number[k+1]
 number[k+1]=t
 for m in range(0,size):
 print(number[m])
 inputnumbers=[]
 howmany=input('how many?')
 howmany=int(howmany)
 for i in range(0,howmany):
 inputnumbers.append('')
 inputnumbers[i]=input('input the number:')
 inputnumbers[i]=int(inputnumbers[i])
bubblesort(inputnumbers,howmany)


C++快速排序法

void quicksort(int num[],int left,int right)//C++快速排序法
 {
 int i,j,key,temp;
 i=left;
 j=right;
 key=num[i];
 if(left>=right)
 {
 return;
 }
 while(i<j)
 {
 while((key<=num[j])&&(i<j))
 {
 j--;
 }
 if(key>num[j])
 {
 temp=num[i];
 num[i]=num[j];
 num[j]=temp;
 }
 while((num[i]<=key)&&(i<j))
 {
 i++;
 }
 if(num[i]>key)
 {
 temp=num[j];
 num[j]=num[i];
 num[i]=temp;
 }
 }
 quicksort(num,left,i-1);
 quicksort(num,j+1,right);
}


接下来要挑战做一个什么应用呢?我已经有了主意(先保密),反正一定做个热门的应用吧。

Tags:

最近发表
标签列表