定义函数void sort(int a[],int n),用选择法对数组a 中的元素升序排列。自定
发布网友
发布时间:2022-04-27 04:39
我来回答
共5个回答
热心网友
时间:2023-09-11 04:24
#include <stdio.h>
void sort(int a[],int n);
int main()
{
int a[]={10,8,6,3,2,5,7,9},i;
sort(a,8);
printf("数组{10,8,6,3,2,5,7,9}排序后:\n");
for(i=0;i<8;i++)
printf("%d ",a[i]);
printf("\n");
}
void sort(int *a,int n)
{
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
a[k]^=a[i],a[i]^=a[k],a[k]^=a[i];
}
}
热心网友
时间:2023-09-11 04:25
#include <stdio.h>
#include <stdlib.h>
// 选择插入法排序
void sort(int a[], int n)
{
int i, j, k, tmp;
for (i = 0; i < n; i++)
{
for (j = 0; j < i; j++)
if (a[i] < a[j]) break; // 找到待插位置
tmp = a[i]; // 临时变量记录待插的值
// 移出插入空间
for (k = i; k > j; k--) a[k] = a[k - 1];
// 插入
a[j] = tmp;
}
}
int main()
{
int *a, n, i;
scanf("%d", &n); // 输入数据数量
if (n > 0)
{
a = (int *)malloc(n * sizeof(int)); // 动态申请数组空间
// 输入数据
for (i = 0; i < n; i++) scanf("%d", &a[i]);
// 排序
sort(a, n);
// 输出排序后的结果
printf("After sorted the array is:");
for (i = 0; i < n; i++) printf("%d ", a[i]);
printf("\n");
free(a); // 释放内存
}
return 0;
}
热心网友
时间:2023-09-11 04:25
#include <stdio.h>#include <stdlib.h>// 选择插入法排序void sort(int a[], int n){ int i, j, k, tmp; for (i = 0; i < n; i++) { for (j = 0; j < i; j++) if (a[i] < a[j]) break; // 找到待插位置 tmp = a[i]; // 临时变量记录待插的值 // 移出插入空间 for (k = i; k > j; k--) a[k] = a[k - 1]; // 插入 a[j] = tmp; }}int main(){ int *a, n, i; scanf("%d", &n); // 输入数据数量 if (n > 0) { a = (int *)malloc(n * sizeof(int)); // 动态申请数组空间 // 输入数据 for (i = 0; i < n; i++) scanf("%d", &a[i]); // 排序 sort(a, n); // 输出排序后的结果 printf("After sorted the array is:"); for (i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); free(a); // 释放内存 } return 0;}
热心网友
时间:2023-09-11 04:26
//从小到大的排序
int i,j;
int temp;//临时
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{a[i]=temp;temp=a[j];a[j]=a[i];}
热心网友
时间:2023-09-11 04:26
排序算法冒泡,快排,堆排序,桶排序,插入排序,好多啊,你要哪一种