使用指针对数组a使用未优化的选择法从大到小排序。要求:采用函数形式为int a [6]=8,5,7,9,4,6
冒泡排序法算未优化的选择法么?
void bubbleSort(int *p, int len)
{
int i, j,t;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - 1 - i; j++) {
if (*(p+j) > *(p+j+1) )
{
t = *(p + j);
*(p + j) = *(p + j + 1);
*(p + j + 1) = t;
}
}
}
}
int main()
{
int a[6] = { 8,5,7,9,4,6 };
bubbleSort(a, 6);
for (int i = 0; i < 6; i++)
printf("%d ", *(a + i));
return 0;
}
void sort(int* p,int lenth)
{
int temp;
//用指针对数组进行从小到大的排序
for (int i=0;i<lenth;i++)
{
for(int j=i;j<lenth;j++)
{
if (*(p+i)>*(p+j+1))
{
temp=*(p+j+1);
*(p+j+1)=*(p+i);
*(p+i)=temp;
}
}
}
for (int k=0;k<lenth;k++)
{
printf("%d ",*(p+k));
}
}
void main()
{
int arr[10]={4,2,8,11,3,6,9,33,23,15};
sort(arr,sizeof(arr)/sizeof(arr[0]));
}
#include<stdio.h>
void select_sort(int *a,int n)
{
int i,j;
for(i = 0;i<n-1;i++)
{
for(j = i+1;j < n;j++)
{
if(*(a+i)>*(a+j))
{
int temp;
temp = *(a+i);
*(a+i) = *(a+j);
*(a+j) = temp;
}
}
}
/* for(i = 0;i < n;i++)
{
printf("%d\t",*(a+i));
}
*/
}
void print(int *a,int n)
{
int i;
for(i = 0;i < n;i++)
{
printf("%d\t",*(a+i));
}
printf("\n");
}
int main()
{
int a[5];
int i;
for(i = 0;i < 5;i++)
{
scanf("%d",&a[i]);
}
select_sort(a,5);
print(a,5);
return 0;
}
选择排序指针法
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632