level 1
贴吧用户_G799PUR
楼主
1.
#include<stdio.h>
void InsertSort(int r[], int n);
int main()
{
int i;
int r[8] = { 0, 12, 15, 9, 20, 6, 31, 24 };
printf("排序前元素为:\n");
for (i = 1; i < 8; i++)
printf("%d ", r[i]);
printf("\n");
InsertSort(r, 7);
printf("排序后元素为:\n");
for (i = 1; i < 8; i++)
printf("%d ", r[i]);
getchar();
return 0;
}
void InsertSort(int r[], int n) /*r[0]用作暂存单元和监视哨*/
{
int i, j;
for (i = 2; i <= n; i++)
{
r[0] = r[i]; /*暂存待插记录,设置哨兵*/
for (j = i - 1; r[0] < r[j]; j--) /*寻找插入位置*/
r[j + 1] = r[j];
r[j + 1] = r[0];
}
}
2.
#include<stdio.h>
void BubbleSort(int r[], int n);
int main()
{
int i;
int r[9] = {0, 50, 13, 55, 97, 27, 38, 49, 65 };
printf("排序前的元素为:\n");
for (i = 1; i < 9; i++)
printf("%d ", r[i]);
BubbleSort(r, 8);
printf("\n排序后的元素为:\n");
for (i = 1; i < 9; i++)
printf("%d ", r[i]);
getchar();
return 0;
}
void BubbleSort(int r[], int n) /*r[0]用作交换的临时单元*/
{
int j, exchange, bound;
exchange = n; /*第一趟起泡排序的区间是r[1]~r[n]*/
while (exchange != 0) /*当上一趟排序有记录交换时*/
{
bound = exchange; exchange = 0;
for (j = 0; j < bound; j++) /*一趟起泡排序的区间是r[1]~r[bound]*/
if (r[j] > r[j + 1]) {
r[0] = r[j]; r[j] = r[j + 1]; r[j + 1] = r[0];
exchange = j; /*记载每一次记录交换的位置*/
}
}
}
可以问问这俩代码画成流程图该怎么画嘛?(初学者表示太菜了不会)
2021年12月15日 08点12分
1
#include<stdio.h>
void InsertSort(int r[], int n);
int main()
{
int i;
int r[8] = { 0, 12, 15, 9, 20, 6, 31, 24 };
printf("排序前元素为:\n");
for (i = 1; i < 8; i++)
printf("%d ", r[i]);
printf("\n");
InsertSort(r, 7);
printf("排序后元素为:\n");
for (i = 1; i < 8; i++)
printf("%d ", r[i]);
getchar();
return 0;
}
void InsertSort(int r[], int n) /*r[0]用作暂存单元和监视哨*/
{
int i, j;
for (i = 2; i <= n; i++)
{
r[0] = r[i]; /*暂存待插记录,设置哨兵*/
for (j = i - 1; r[0] < r[j]; j--) /*寻找插入位置*/
r[j + 1] = r[j];
r[j + 1] = r[0];
}
}
2.
#include<stdio.h>
void BubbleSort(int r[], int n);
int main()
{
int i;
int r[9] = {0, 50, 13, 55, 97, 27, 38, 49, 65 };
printf("排序前的元素为:\n");
for (i = 1; i < 9; i++)
printf("%d ", r[i]);
BubbleSort(r, 8);
printf("\n排序后的元素为:\n");
for (i = 1; i < 9; i++)
printf("%d ", r[i]);
getchar();
return 0;
}
void BubbleSort(int r[], int n) /*r[0]用作交换的临时单元*/
{
int j, exchange, bound;
exchange = n; /*第一趟起泡排序的区间是r[1]~r[n]*/
while (exchange != 0) /*当上一趟排序有记录交换时*/
{
bound = exchange; exchange = 0;
for (j = 0; j < bound; j++) /*一趟起泡排序的区间是r[1]~r[bound]*/
if (r[j] > r[j + 1]) {
r[0] = r[j]; r[j] = r[j + 1]; r[j + 1] = r[0];
exchange = j; /*记载每一次记录交换的位置*/
}
}
}
可以问问这俩代码画成流程图该怎么画嘛?(初学者表示太菜了不会)