数据结构与算法 -排序
来源:互联网 发布:java模拟上传文件 编辑:程序博客网 时间:2024/04/29 14:05
选择排序 是每一次从待排序的数中找出最小的数,顺序放到数组前面,直道全部数据排序完毕。
此排序方法和冒泡排序不一样。冒泡排序是将相邻数依次两两比较,比较一次就要进行一次交换。交换占用时间较多。
此算法 每次遍历,只选择最值元素进行交换,这样一次遍历,只需进行一次交换即可,从而避免了其它无价值的交换操作。每次比较只记录了数在数组中的位置,并没有交换。只有在最后一次进行了交换。
注意:比较次数。
<pre name="code" class="plain"> for (int pass=0;pass<intArray.length-1;pass++){//外层循环次数, a=pass;for(int i=pass+1;i<intArray.length;i++){//内层循环,比外层循环的数多1if(intArray[a]>intArray[i]){ a=i;}} int b=intArray[pass];intArray[pass]=intArray[a];intArray[a]=b;}
最近在学习嵌入式汇编,感觉好麻烦。附上汇编程序:
选择排序 是每一次从待排序的数中找出最小的数,顺序放到数组前面,直道全部数据排序完毕。此排序方法和冒泡排序不一样。冒泡排序是将相邻数依次两两比较,比较一次就要进行一次交换。交换占用时间较多。此算法 每次遍历,只选择最值元素进行交换,这样一次遍历,只需进行一次交换即可,从而避免了其它无价值的交换操作。每次比较只记录了数在数组中的位置,并没有交换。只有在最后一次进行了交换。注意:比较次数。
AREA select,CODE,READONLY ENTRYSTART MOV R0,#4 MOV R7,#0 LDR R1,=DES MOV R2,#0 ;外层循环计数 MOV R5,#1 ;内存循环计数 BL LOOP1STOP MOV r0, #0x18 ; angel_SWIreason_ReportException LDR r1, =0x20026 ; ADP_Stopped_ApplicationExit SWI 0x123456 ; ARM semihosting SWILOOP1 LDR R3,[R1,R7] ;加载第一个数 ADD R0,R7,#4 LDR R6, [R1,R7] ;总是存放最小数LOOP2 LDR R4,[R1,R0] CMP R6,R4 LDRGT R6,[R1,R0] ;若第一个数比第二个数大,把第二个数放到r6中 MOVGT R8,R0 ADD R5,R5,#1 ADD R0,R0,#4 CMP R5,#5;比较内层循环次数 BLT LOOP2;若未完成,继续循环,否则交换 CMP R6,R3 STRNE R3,[R1,R8] STR R6,[R1,R7];把最小值R6给第一个数 ADD R2,R2,#1;外层循环次数加一 ADD R7,R7,#4;指向下一个数 MOV R5,R2 ADD R5,R5,#1 CMP R2,#4 BLT LOOP1;未完成,继续循环 MOV pc,lr AREA Array1,DATA,READWRITEDES DCD 3,4,3,2,1 END ;35416
汇编语言代码根据上面java写出,先把java语言写出来,然后对照写出 注意各个寄存器。
每条命令可以按条件执行。就像高级语言中的if语句。
例如:movne r0,r1 ltrne r0,[r1,#4] 等都可以按条件执行
1 0
- 【数据结构与算法】排序
- 数据结构与算法 -排序
- 数据结构与算法:排序
- 【数据结构与算法】排序
- [算法与数据结构] 排序
- 数据结构与算法:排序
- 【数据结构与算法】排序算法
- 数据结构与算法排序算法
- 数据结构与算法-----排序算法
- 排序算法与数据结构汇总
- 算法与数据结构--拓扑排序
- 数据结构与算法-快速排序
- 【数据结构与算法】冒泡排序
- 【数据结构与算法】快速排序
- 【数据结构与算法】选择排序
- 【数据结构与算法】堆排序
- 【数据结构与算法】希尔排序
- [数据结构与算法]快速排序
- Android 4.3 BLE 开发samples for SDK单独下载
- IO Brief
- Qt常用快捷键
- cocos2d-x 学习笔记
- Spark中的combineByKey
- 数据结构与算法 -排序
- 用 FragmentTabHost 实现底部菜单
- System V信号量
- OC-3-字符串
- Spark修炼之道(进阶篇)——Spark入门到精通:第十三节 Spark Streaming—— Spark SQL、DataFrame与Spark Streaming
- Android-利用SharedPreferences实现记住密码和账号功能
- 微信开发快速入门
- 安装及配置GoClipse
- iOS ---UICollection