写出一种算,实现对 int b[] 由小到大排序
时间: 2023-12-03 18:46:03 浏览: 23
以下是一种简单的冒泡排序算法,可以对 int b[] 从小到大进行排序:
```c++
void bubbleSort(int b[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (b[j] > b[j+1]) {
int tmp = b[j];
b[j] = b[j+1];
b[j+1] = tmp;
}
}
}
}
```
在这个算法中,我们使用了两个循环来遍历整个数组。外层的循环从第一个元素开始,一直遍历到倒数第二个元素,内层的循环从第一个元素开始,一直遍历到当前外层循环位置之后的所有元素。在内层循环中,我们比较相邻的元素,如果前面的元素比后面的元素大,则交换它们的位置。这样一轮下来,最大的元素就会“沉底”,然后我们就可以在下一轮中只考虑前面的元素了。通过多轮循环,最终我们就可以将整个数组排序完成。
相关问题
有int 数组 arraylnt,请写出一种排序算法,对 arrayint 进行从小到大行排序。
这里介绍一种经典的排序算法:冒泡排序。
冒泡排序的基本思想是:依次比较相邻的两个数,如果前面的数比后面的数大,就交换这两个数,一轮比较下来,最大的数就被排到了最后面,然后再从头开始比较,直到所有的数都排好序为止。
以下是使用冒泡排序对数组进行排序的示例代码:
```
void bubble_sort(int array[], int len)
{
int i, j;
for(i = 0; i < len - 1; i++)
{
for(j = 0; j < len - 1 - i; j++)
{
if(array[j] > array[j+1])
{
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
```
在上面的代码中,我们使用了两个嵌套的循环,外层循环控制比较的轮数,内层循环控制每轮比较的次数。在每次内层循环中,我们比较相邻的两个数,如果前面的数比后面的数大,就交换这两个数。最终,当外层循环执行完毕后,数组中的数就被排好序了。
使用示例:
```
int main()
{
int array[] = {5, 2, 7, 3, 6, 1, 4};
int len = sizeof(array) / sizeof(array[0]);
bubble_sort(array, len);
for(int i = 0; i < len; i++)
{
printf("%d ", array[i]);
}
return 0;
}
```
输出结果为:1 2 3 4 5 6 7
用C语言写一段数字从大到小排序代码
### 回答1:
#include <stdio.h>
int main()
{
int n,i,j,a[30],temp;
printf("Enter the number of elements:");
scanf("%d",&n);
printf("\nEnter the elements:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]<a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
printf("\nThe numbers arranged in descending order are given below:\n");
for(i=0;i<n;i++)
printf("%d\n",a[i]);
return 0;
}我可以用中文回答你的问题,但是我更建议你去查看C语言的相关文档,因为C语言是一种编程语言,要想写出正确的代码需要掌握一定的语法知识。
### 回答2:
以下是使用C语言编写的一段数字从大到小排序的代码:
```c
#include <stdio.h>
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (arr[j] < arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int arr[] = {9, 5, 2, 7, 1};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
printf("排序后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
此代码中使用了冒泡排序算法进行从大到小的排序。首先定义了一个bubbleSort函数来实现冒泡排序的逻辑,然后在主函数中定义一个包含待排序数字的数组arr,并计算数组的长度n。接下来调用bubbleSort函数对数组进行排序,并最后打印出排序后的数组。运行该代码后,输出结果为:9 7 5 2 1,即数字从大到小排序。
### 回答3:
下面是使用C语言写的一段将数字从大到小排序的代码:
```c
#include <stdio.h>
void sortDescending(int arr[], int n) {
int i, j, temp;
for(i = 0; i < n-1; i++) {
for(j = i+1; j < n; j++) {
if(arr[i] < arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main() {
int arr[] = {6, 2, 8, 4, 10};
int n = sizeof(arr) / sizeof(arr[0]);
int i;
printf("排序前的数组:");
for(i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
sortDescending(arr, n);
printf("\n排序后的数组:");
for(i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这段代码使用了冒泡排序算法来将数组中的元素按从大到小的顺序排列。在 `sortDescending` 函数中,使用了两个嵌套的循环来比较数组元素的大小,并按需交换它们的位置。最后,在 `main` 函数中,调用 `sortDescending` 函数将给定的数组排序,并将排序后的结果输出到控制台。在输出结果中,排序前和排序后的数组元素都以空格分隔显示。