2024年2月6日
1.现有无序序列数组为{23,24,12,5,33,5,34,7},请使用以下排序实现编程。
函数1:请使用冒泡排序实现升序排序
函数2︰请使用简单选择排序实现升序排序
函数3:请使用直接插入排序实现升序排序
函数4∶请使用插入排序实现升序排序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/*
* function: 冒泡排序
* @param [ in] 数组 数组长度
* @param [out]
* @return
*/
void bubble(int *p,int len)
{
for(int i=1;i<len;i++)
{
for(int j=0;j<len-i;j++)
{
if(*(p+j)>=*(p+j+1))
{
int t=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=t;
}
}
}
}
/*
* function: 简单选择
* @param [ in] 数组 数组长度
* @param [out]
* @return
*/
void simple(int *p,int len)
{
for(int i=0;i<len-1;i++)
{
int min=i;
for(int j=i;j<len;j++)
{
if(*(p+min)>*(p+j))
min=j;
}
if(min!=i)
{
int t=*(p+i);
*(p+i)=*(p+min);
*(p+min)=t;
}
}
}
/*
* function: 输出
* @param [ in] 数组 数组长度
* @param [out]
* @return
*/
void output(int *p,int len)
{
for(int i=0;i<len;i++)
printf("%-5d",*(p+i));
}
int main(int argc, const char *argv[])
{
int arr[]={23,24,12,5,33,5,34,7};
int len=sizeof(arr)/sizeof(arr[0]);
// bubble(arr,len);
simple(arr,len);
// quick(arr);
// inserch(arr);
output(arr,len);
return 0;
}
⒉.请编程实现
写了个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和例如:调用DigitSum(1729),则返回1+7+2+9,它的和是19
输入1729,输出19