对10个整数进行从小到大排序(插入排序方法、冒泡排序、选择排序分别进行设计)。 ⑴在主函数中完成3个函数模块调用(shuru(); paixu(); shucu();); ⑵文件包含模块里包括数据的输入、排序及输出三个自定义函数。产业园
时间: 2024-03-24 12:39:33 浏览: 85
好的,我来回答您的问题。
对于这个问题,我可以为您提供三种不同的排序方法来实现从小到大排序:
1. 插入排序方法:
插入排序是一种简单直观的排序方法,它的基本思想是:将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加1的有序表。
具体实现步骤如下:
```
void shuru(int a[], int n) // 输入数据
{
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
}
void paixu(int a[], int n) // 插入排序
{
for (int i = 1; i < n; i++)
{
int j = i;
int temp = a[i];
while (j > 0 && a[j - 1] > temp)
{
a[j] = a[j - 1];
j--;
}
a[j] = temp;
}
}
void shucu(int a[], int n) // 输出结果
{
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
cout << endl;
}
int main()
{
int a[10];
shuru(a, 10);
paixu(a, 10);
shucu(a, 10);
return 0;
}
```
2. 冒泡排序方法:
冒泡排序是一种交换排序方法,它的基本思想是:通过相邻元素之间的比较和交换,使较大的元素逐渐从底部移向顶部,较小的元素逐渐从顶部移向底部。
具体实现步骤如下:
```
void shuru(int a[], int n) // 输入数据
{
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
}
void paixu(int a[], int n) // 冒泡排序
{
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (a[j] > a[j + 1])
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
void shucu(int a[], int n) // 输出结果
{
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
cout << endl;
}
int main()
{
int a[10];
shuru(a, 10);
paixu(a, 10);
shucu(a, 10);
return 0;
}
```
3. 选择排序方法:
选择排序是一种简单直观的排序方法,它的基本思想是:每次从未排序的元素中选出最小的元素,将它与未排序的部分的第一个元素交换位置。
具体实现步骤如下:
```
void shuru(int a[], int n) // 输入数据
{
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
}
void paixu(int a[], int n) // 选择排序
{
for (int i = 0; i < n - 1; i++)
{
int minIndex = i;
for (int j = i + 1; j < n; j++)
{
if (a[j] < a[minIndex])
{
minIndex = j;
}
}
if (minIndex != i)
{
int temp = a[i];
a[i] = a[minIndex];
a[minIndex] = temp;
}
}
}
void shucu(int a[], int n) // 输出结果
{
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
cout << endl;
}
int main()
{
int a[10];
shuru(a, 10);
paixu(a, 10);
shucu(a, 10);
return 0;
}
```
以上就是三种不同的排序方法的实现代码,您可以根据自己的需要来选择其中一种来使用。
阅读全文