使用冒泡排序,实现对数组的从小到大排序。(数组元素使用随机生成方式)输出原数组内容,及排序后内容;
时间: 2024-11-27 08:22:17 浏览: 24
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。这个过程会持续到整个序列都有序为止。
以下是使用Python实现冒泡排序的例子,首先随机生成一个数组,然后进行排序,并打印原始数组和排序后的数组:
```python
import random
# 随机生成一个整数数组
def generate_random_array(length):
return [random.randint(0, 100) for _ in range(length)]
# 冒泡排序函数
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 每一轮遍历都会将当前未排好序的最大值"冒泡"到最后
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
# 示例数组长度
length = 10
original_array = generate_random_array(length)
print("原始数组:", original_array)
sorted_array = bubble_sort(original_array)
print("排序后数组:", sorted_array)
相关问题
使用冒泡排序,实现对数组例如:{25,24,12,76,101,96,28}的从小到大排序。(数组元素使用随机生成方式)输出原数组内容,及排序后内容
当然,我们可以使用冒泡排序算法来对给定的随机数组进行升序排列。以下是使用Java语言的一个示例:
```java
import java.util.Arrays;
import java.util.Random;
public class BubbleSortExample {
public static void main(String[] args) {
// 生成一个包含随机整数的数组
int[] array = generateRandomArray(7, 100); // 生成长度为7,元素范围在100内的数组
System.out.println("原数组内容:");
printArray(array);
// 冒泡排序
bubbleSort(array);
System.out.println("\n排序后的内容:");
printArray(array);
}
// 生成随机数组
private static int[] generateRandomArray(int length, int max) {
Random random = new Random();
int[] arr = new int[length];
for (int i = 0; i < length; i++) {
arr[i] = random.nextInt(max);
}
return arr;
}
// 冒泡排序函数
private static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 打印数组
private static void printArray(int[] arr) {
Arrays.stream(arr).forEach(System.out::print);
System.out.println();
}
}
```
运行上述代码,你会看到原始数组以及排序后的数组。
用C#编写程序,声明一个有30个元素的整型数组,里面存入30个随机生成的整数,并用冒泡排序算法对数组内元素从小到大排序。
以下是用C#编写的程序,实现了你要求的功能:
```csharp
using System;
class Program
{
static void Main(string[] args)
{
int[] array = new int[30]; // 声明一个有30个元素的整型数组
Random rand = new Random(); // 生成随机数的实例
// 将随机生成的整数存入数组
for (int i = 0; i < array.Length; i++)
{
array[i] = rand.Next(100); // 随机生成0到99之间的整数
}
// 输出排序前的数组
Console.WriteLine("排序前的数组:");
PrintArray(array);
// 冒泡排序
for (int i = 0; i < array.Length - 1; i++)
{
for (int j = 0; j < array.Length - 1 - i; j++)
{
if (array[j] > array[j + 1])
{
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
// 输出排序后的数组
Console.WriteLine("排序后的数组:");
PrintArray(array);
Console.ReadKey();
}
// 输出数组的方法
static void PrintArray(int[] arr)
{
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();
}
}
```
运行结果如下:
```
排序前的数组:
27 83 13 69 45 46 16 91 43 6 94 16 56 36 19 64 17 71 55 34 76 81 94 57 31 44 12 27 26 62
排序后的数组:
6 12 13 16 16 17 19 26 27 27 31 34 36 43 44 45 46 55 56 57 62 64 69 71 76 81 83 91 94 94
```
阅读全文