以下是基于冒泡排序算法对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语言程序设计:已知排序好的两个数组,将这两个数组和并,生成一个新数组,新数组也是按书序排列的。、设计一个应用程序,输入一个至少十个元素的数组,对数组进行升序排列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)