[急求汇编语言进行冒泡法排序的程序例子!]下面是冒泡法排序的源程序(已改进): dseg segment array db 0feh,86h,95h,21h,90h count equ $-array dseg ends cseg segment assume ds:dseg,cs:cseg start: mov ax,dseg mov...+阅读
#include
#include
using namespace std;
void swap(int& a,int& b)
{
int c;
c=a;
a=b;
b=c;
}
void sort(int* a, int n)//快排函数,从小到大
{
if(n<=1) return;
if(n==2){
if(a[1] swap(a[1],a[0]);
return;
}
swap(a[0],a[n/2]);
int t = *a;
int* L=a+1;//从左向右走,遇到不小于分界值的停下
int* R=a+n-1;//从右向左走,遇到小于分界值的停下
while(L while(L while(a=t) --R;
if(L }
swap(*a,*R);
sort(a,R-a);
sort(R+1,n-(R-a)-1);
}
void show(int a[], int n)//显示函数
{
for(int i=0; i cout << a[i] << ' ';
cout << endl;
}
int main()//主函数
{
srand(time(NULL));//随机数种子
const int N = 102400;
int a[N];
for(int i=0; i a[i] = N-i;
show(a, 10);
clock_t t1 = clock();//测试本次排序所耗时间
sort(a, N);
clock_t t2 = clock();
show(a, 10);
cout << "time:" << double(t2-t1)/CLOCKS_PER_SEC << endl;
}
测试过了,102400个数倒过来才花了0.031秒,相当可观。很明显,快排采用的是递归的思想,折半来进行,因此,递归的使用有时能产生神奇的效果!祝你好运!
以下为关联文档:
关于冒泡排序的问题汇编高手请进!模仿下面自己冒泡排序吧 用冒泡排序法对数据列31,17,34,4,22,18,29,1进行从小到大排序,经过三趟排序后得到的数据列是___ 就是通过逐次比较相邻的两个数据的大小来完成。 原...
汇编语言冒泡排序程序 10个数//排序从小到大 int a[] = new int[] { 97, 78, -1, 0, 32, 14, 21, 27, -20, 99 }; int temp = 0; for (int i = 0; i < a.length; i++) { for (int j = 0; j <a.length -...
用汇编语言在键盘里输入10个学生的成绩用冒泡排序法从大到小进CODE SEGMENT ASSUME CS:CODE ORG 100H START: PUSH CS POP DS PUSH CS POP ES CALL INPUTNUM MOV AX,NUM MOV N,AX CALL BUBBLESORT MOV AH,2 MOV DL,10 INT 21H MOV DL,13...
汇编语言冒泡法排序高手的请进!DATA SEGMENT ADR DW 58,64,32,0,23,256,272,280,-1 ,-2 N=( $-ADR )/2 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,N DEC CX LO...
汇编语言冒泡排序算法N equ 10.model small .data array dw N dup(?) .code main proc far mov ax,data mov ds,ax mov cx,Ndec cxloop1: mov di,cx mov bx,0 loop2: mov ax,array[bx] cmp ax,ar...
汇编语言:编写子程序将内容变量arr中的10个字数用冒泡排序算法将数据段DATA开始的16个数排序,前小后大,程序示例如下: DATAS SEGMENT arr DB 74,68,58,66,69,254,186,6,10,98,34,90,128,222,33,0 COUNT DB 10 DATAS ENDS CODES SEGMENT ASS...
树叶的排序这节课的教案怎么写设计思路: 本节课的重点是通过各种观察、操作,引导幼儿发现事物在外形(颜色、形状)和数量上的两维变化规律,并根据规律继续排列,在此基础上尝试创编事物多因素变化的排列规律。难...
C语言中快速排序法的原理及应用49 38 65 97 76 13 27 50 按非降序排,用快速排序实现解释:用每次取的数据作为分界点,在这之内分成2块先和最后面的数据比较,当大于时就互换位置,在和前面的数据比较设置low 和hig...
C语言高效排序算法的原理及代码快速排序是通过分治的思想来实现的。即找一个 中间数,让小于这个数字的放在他左边,大于这个数字的放在右边!然后逐渐放小! 以升序为例: int qsort(ArrayStule *aS,int low,int hi...