四程序设计(本大题共3小题-|||-1.利用冒泡法将10个数组元素按从小到大顺序排

四程序设计(本大题共3小题-|||-1.利用冒泡法将10个数组元素按从小到大顺序排,第1张

以下是基于冒泡排序算法对10个数组元素按从小到大进行排序的示例代码:

```

#include <stdioh>

void bubble_sort(int array[], int n);

int main() {

int numbers[10] = { 1, 8, 4, 9, 6, 7, 2, 5, 3, 10 };

int i;

printf("Original array: ");

for (i = 0; i < 10; i++) {

printf("%d ", numbers[i]);

}

bubble_sort(numbers, 10);

printf("\nSorted array: ");

for (i = 0; i < 10; i++) {

printf("%d ", numbers[i]);

}

return 0;

}

void bubble_sort(int array[], int n) {

int i, j, temp;

for (i = 0; i < n - 1; i++) {

for (j = 0; j < n - i - 1; j++) {

if (array[j] > array[j + 1]) {

temp = array[j];

array[j] = array[j + 1];

array[j + 1] = temp;

}

}

}

}

```

注释:

- `bubble_sort`函数使用冒泡排序算法对数组进行排序。

- 外部循环从0到n-1,指定要进行n-1次排序,因为我们需要比较相邻的元素

- 内部循环从0到n-i-1,因为在每次迭代i时,我们都会放置最大的元素在数组的最后面。

- 如果array[j]>array[j + 1],则交换它们的位置。

在此示例中,我们将数据固定在代码中,但您可以在代码中询问用户要排序的数字。

#include"stdioh"

main()

{

int a[100],b[100],c[200],i,j,n,m,k=0;

scanf("%d",&n);

for(i=0;i<n;i++) scanf("%d",&a[i]);

scanf("%d",&m);

for(j=0;j<m;j++) scanf("%d",&b[j]);

for(i=0,j=0;i<n&&j<m;)

{

if(a[i]<b[j])

{c[k]=a[i];i++;k++;}

else

{c[k]=b[j];j++;k++;}

}

if(i<n)

{for(;i<n;i++) {c[k]=a[i];i++;k++;}}

if(j<m)

{for(;j<m;j++) {c[k]=b[j];j++;k++;}}

printf("新数组为:")

for(i=0;i<k;i++) printf("%d ",c[i]);

}

就是排序算法,可以考虑的算法包括: 直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、归并排序、桶排序等。 提供一个冒泡排序吧,其他的建议自己实现: typedef int DT;void swap(DT a, DT b){if(a!=b){a=a ^ b;b=a ^

void exchange(int a[],int n)

{

int max = a[0],min = a[0],maxIndex=0,minIndex=0;

for(int i=1;i<n;++i)

{

if(a[i] > max){max = a[i];maxIndex = i;}

if(a[i] < min){min= a[i];minIndex = i;}

}

int tmp = a[maxIndex];

a[maxIndex] = a[minIndex];

a[minIndex] = tmp;

}

Dim jz() As Long '定义数组

Private Sub rank(n As Integer, a() As Long) '升序排列过程(冒泡排序法)

For i = 0 To n - 1

flag = 0

For j = n To i + 1 Step -1

If a(j - 1) > a(j) Then

t = a(j - 1): a(j - 1) = a(j): a(j) = t: flag = 1

End If

Next j

If flag = 0 Then Exit For

Next i

End Sub

Private Sub Command1_Click() '生成10个随机数

ReDim jz(9) As Long

For i = 0 To 9

Randomize '随机种子

jz(i) = Int(Rnd 899) + 100 '生成100-999的随机数

Next i

End Sub

Private Sub Command2_Click() '按升序排序

rank UBound(jz), jz '排序

For i = 0 To UBound(jz) '显示排序后内容

Print jz(i)

Next i

End Sub

Private Sub Command3_Click() '插入新数据

Dim NewN As Long

NewN = Val(InputBox("请输入新数据:"))

If NewN > 0 Then

ReDim Preserve jz(UBound(jz) + 1) As Long

jz(UBound(jz)) = NewN

End If

rank UBound(jz), jz '排序

For i = 0 To UBound(jz) '显示排序后内容数组

Print jz(i)

Next i

End Sub

此法可以多次插入数据

以上就是关于四程序设计(本大题共3小题-|||-1.利用冒泡法将10个数组元素按从小到大顺序排全部的内容,包括:四程序设计(本大题共3小题-|||-1.利用冒泡法将10个数组元素按从小到大顺序排、C语言程序设计:已知排序好的两个数组,将这两个数组和并,生成一个新数组,新数组也是按书序排列的。、设计一个应用程序,输入一个至少十个元素的数组,对数组进行升序排列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9501658.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存