1. 编写冒泡排序和选择排序的程序,主函数中编写菜单调用排序函数。C语言

 我来答
My_Persistence
2017-12-07 · TA获得超过3467个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:433万
展开全部
//C语言示例代码如下
#include <stdio.h>
#define N 10
//冒泡排序(升序)
void bubble_sort(int a[],int n)
{
int i,j;  //j表示趟数,i表示第j趟两两比较的次数
int tmp; //临时变量
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
{
if(a[j] > a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
//选择排序算法,按从小到大顺序
void select_sort(int *array,int n)
{
    int i,j,k;
    int tmp;

    for(i=0;i<n-1;i++)
    {
        k=i;  //开始一趟选择排序,假定第i个元素是后面n-i+1个未排序的元素中最小的元素
        for(j=i+1;j<n;j++)
        {
if(array[k] > array[j]) //如果发现比当前最小元素还小的元素,则更新记录最小元素的下标k
    k=j;
        }
//如果最小元素的下标不是后面n-i+1的未排序序列的第一个元素,则需要交换第i个元素和后面找到的最小元素的位置
        if(k != i)
        {
            tmp=array[k];
            array[k]=array[i];
            array[i]=tmp;
        }
    }
}
int main()
{
int arr[N];
int i;
printf("输入数组元素: ");
for(i=0;i<N;i++)
scanf("%d",&arr[i]);
bubble_sort(arr,N);  //调用冒泡排序函数
printf("输出排序后的数组元素: ");
for(i=0;i<N;i++)
printf("%d ",arr[i]);
printf("\n输入数组元素: ");
for(i=0;i<N;i++)
scanf("%d",&arr[i]);
select_sort(arr,N);  //调用选择排序函数
printf("输出排序后的数组元素: ");
for(i=0;i<N;i++)
printf("%d ",arr[i]);
printf("\n");
return 0;
}

yunlkong
2011-07-08 · TA获得超过5711个赞
知道大有可为答主
回答量:9695
采纳率:0%
帮助的人:1.9亿
展开全部
a0003:
push cx
push si
a0002:
mov dl,A[si]
cmp dl,A[si+1]
jb a0001
xchg dl,A[si+1]
xchg A[si],dl
a0001: inc si
loop a0002
pop si
pop cx
loop a0003

mov ah,4ch
int 21h
code ends
end start
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
起航教育学校
2011-06-24 · TA获得超过912个赞
知道小有建树答主
回答量:388
采纳率:0%
帮助的人:466万
展开全部
#include "stdio.h"
#define N 10
main()
{
int a[N],i,j;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++)
for(j=i+1;j<N-1;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
for(i=0;i<N;i++)
printf(" %d",a[i]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8b72297
2011-06-24
知道答主
回答量:4
采纳率:0%
帮助的人:3.3万
展开全部
void sort_xuanze(int a[],int n)
{int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t; } /*升序排序 */
}
void sort_maopao(int a[],int n)
{int i,j,t;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t; } /*升序排序 */
}
main()
{int a[10],i;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort_xuanze(a,10); /*调用*/
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n");
sort_maopao(a,10); /*调用*/
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式