练习--数组基础算法题
程序员文章站
2022-03-15 21:07:07
...
1、实现一个对整形数组的冒泡排序
#include <stdio.h>
//实现一个对整形数组的冒泡排序
void BubbleSort(int arr[],int len)
{
int i;
int j;
int a;
int b;
for (j = 0; j < len-1; j++)
{
for (i = 0; i < len-j-1; i++)
{
if (arr[i]>arr[i + 1])
{
int tmp = 0;
tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
}
}
printf("%d\n", arr[len - 1 - j]);
//优化方法:每趟排完都检测一遍,若已经拍好顺序,直接提前输出
for (a = 0; a < len - 1 - j; a++)
{
if (arr[a] > arr[a + 1])
{
break;
}
}
if (a >= len - 1 - j)
{
printf("提前排好了,从小到大依次为:");
for (b = 0; b < len; b++)
{
printf("%d\n", arr[b]);
}
break;
}
//优化方法:每趟排完都检测一遍,若已经拍好顺序,直接提前输出
}
}
int main()
{
int arr[10] = { 45, 86, 24, 15, 68, 24, 67, 95, 7, 88 };
int len = sizeof(arr) / sizeof(arr[0]);
BubbleSort(arr, len);
return 0;
}
2、创建一个整形数组,完成对数组的操作
- 实现函数init() 初始化数组为全0
- 实现print() 打印数组的每个元素
- 实现reverse() 函数完成数组元素的逆置。
要求:自己设计以上函数的参数,返回值。
#include <stdio.h>
//创建一个整形数组,完成对数组的操作
//1、实现函数init() 初始化数组为全0
//2、实现print() 打印数组的每个元素
//3、实现reverse() 函数完成数组元素的逆置。
//要求:自己设计以上函数的参数,返回值。
void init(int arr[], int len)
{
for (int i = 0; i < len; i++)
{
arr[i] = 0;
}
}
int print(int arr[], int len)
{
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void reverse(int arr[], int len)
{
for (int i = 0; i < len / 2; i++)
{
int tmp = 0;
tmp = arr[i];
arr[i] = arr[len - 1 - i];
arr[len - 1 - i] = tmp;
}
}
int main()
{
int arr[10] = { 45, 86, 24, 15, 68, 24, 67, 95, 7, 88 };
int len = sizeof(arr) / sizeof(arr[0]);
printf("原数组为:\n");
print(arr, len);
printf("逆序数组为:\n");
reverse(arr, len);
print(arr, len);
printf("初始数组为全0:\n");
init(arr, len);
print(arr, len);
return 0;
}
3、将数组A中的内容和数组B中的内容进行交换。(数组一样大)
#include <stdio.h>
//将数组A中的内容和数组B中的内容进行交换。(数组一样大)
void Change(int a[], int alen, int b[], int blen)
{
for (int i = 0; i < 10; i++)
{
int tmp;
tmp = a[i];
a[i] = b[i];
b[i] = tmp;
}
}
int main()
{
int a[10] = { 45, 86, 24, 15, 68, 24, 67, 95, 7, 88 };
int alen = sizeof(a) / sizeof(a[0]);
int b[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int blen = sizeof(b) / sizeof(b[0]);
Change(a, alen, b, blen);
printf("a[10]数组中的内容为\n:");
for (int i = 0; i < 10; i++)
{
printf("%d ", a[i]);
}
printf("\nb[10]数组中的内容为\n:");
for (int i = 0; i < 10; i++)
{
printf("%d ", b[i]);
}
}
上一篇: 生物识别:单对象人脸识别技术研究
下一篇: Qt5定时器