跟着gpt学算法(c和python)-排序-冒泡排序

这篇具有很好参考价值的文章主要介绍了跟着gpt学算法(c和python)-排序-冒泡排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

排序算法是将一组数据按照特定规则进行排列的算法。排序算法可以按照不同的标准进行分类,比如稳定性、时间复杂度、空间复杂度等。以下是一些常见的排序算法:

  1. 冒泡排序(Bubble Sort):相邻元素进行比较,较大的元素逐渐"冒泡"到右侧,较小的元素逐渐"沉"到左侧。

  2. 插入排序(Insertion Sort):逐步构建有序序列,每次将一个元素插入到已排序的序列中的合适位置。

  3. 选择排序(Selection Sort):在未排序部分找到最小(或最大)元素,然后放到已排序部分的末尾。

  4. 快速排序(Quick Sort):通过选择一个基准元素,将数据分成小于基准和大于基准的两部分,然后递归地对这两部分进行排序。

  5. 归并排序(Merge Sort):将数据不断分割为较小的子问题,然后将子问题的解合并以获得最终的排序结果。

  6. 堆排序(Heap Sort):利用二叉堆结构,将数据转换为最大堆或最小堆,然后反复删除根节点并调整堆结构,得到有序序列。

  7. 希尔排序(Shell Sort):将数据按照一定的间隔进行分组,然后对每组进行插入排序,逐渐缩小间隔直至为1。

  8. 计数排序(Counting Sort):统计元素出现的次数,然后根据统计结果重建有序序列。

  9. 桶排序(Bucket Sort):将数据分到不同的桶中,然后对每个桶中的数据进行排序,最后将桶中的数据合并得到有序序列。

  10. 基数排序(Radix Sort):根据数据的位数,从低位到高位依次对数据进行排序。

多个元素的列表或数组的交换位置、赋值和排序操作

c语言

# 多个元素的列表/数组的交换位置:
void swap_array_elements(int arr[], int index1, int index2) {
    int temp;
    int n = sizeof(arr) / sizeof(arr[0]);
    for (int i = 0; i < n; i++) {
        temp = arr[index1];     // 将第一个位置的元素存储到临时变量temp中
        arr[index1] = arr[index2];  // 将第二个位置的元素赋值给第一个位置
        arr[index2] = temp;     // 将临时变量中的元素赋值给第二个位置
    }
}


#多个元素的列表/数组的赋值:
// 使用循环
void assign_array_elements(int arr[], int value, int n) {
    for (int i = 0; i < n; i++) {
        arr[i] = value;  // 将value的值赋值给数组的每个元素
    }
}

// 使用memcpy函数
#include <string.h>

void assign_array_elements(int arr[], int value, int n) {
    memset(arr, value, n * sizeof(int));  // 使用memcpy函数将value的值赋值给数组的每个元素
}


#多个元素的列表/数组的排序:
// 冒泡排序算法的实现
void bubble_sort(int arr[], int n) {
    // ...
}

Python语言

def swap_list_elements(lst, index1, index2):
    lst[index1], lst[index2] = lst[index2], lst[index1]  # 利用多重赋值将第一个位置的元素赋值给第二个位置,将第二个位置的元素赋值给第一个位置


def assign_list_elements(lst, value, n):
    lst[:n] = [value] * n  # 将value的值赋值给列表的前n个元素


lst = [64, 34, 25, 12, 22]
lst.sort()  # 使用sort()方法对列表进行排序,直接修改原列表
sorted_lst = sorted(lst)  # 使用sorted()函数对列表进行排序,返回一个新的排序后的列表

冒泡排序是一种简单的排序算法,它重复地遍历待排序的列表或数组,依次比较相邻的两个元素,如果它们的顺序不正确就交换它们的位置,直到整个列表或数组排序完成为止。冒泡排序得名于类似水泡上浮的排序过程,较大(或较小)的元素会像气泡一样浮到列表或数组的一端。

冒泡排序的基本思想如下:

  1. 从列表或数组的第一个元素开始,依次比较相邻的两个元素。
  2. 如果前面的元素大于(或小于)后面的元素(根据升序或降序决定),则交换这两个元素的位置,使得较大(或较小)的元素浮到列表或数组的一端。
  3. 继续进行第1步和第2步,直到整个列表或数组排序完成。每次遍历都会将最大(或最小)的元素“冒泡”到正确的位置。

冒泡排序的时间复杂度为O(n^2),其中n是列表或数组中的元素个数。它是一种稳定的排序算法,稳定性是指相同元素的相对顺序在排序后保持不变。

五题冒泡排序

题目1(简单):

问题:
给定一个包含n个整数的列表,使用冒泡排序算法按升序对其进行排序。

Python解答:

python
Copy code
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

# 示例输入和输出
input_list = [64, 34, 25, 12, 22, 11, 90]
sorted_list = bubble_sort(input_list)
print(sorted_list)  # 输出:[11, 12, 22, 25, 34, 64, 90]
C解答:

c
Copy code
#include <stdio.h>

void bubble_sort(int arr[], int n) {
    for (int i = 0; i < n; 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;
            }
        }
    }
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr) / sizeof(arr[0]);
    bubble_sort(arr, n);

    // 输出排序结果
    printf("Sorted array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}
解释:

Python解答:我们首先定义了一个名为bubble_sort的函数,它接受一个整数列表arr作为输入,并返回按升序排列的新列表。n变量用于存储列表的长度,即元素个数。外层循环for i in range(n)用于控制冒泡排序的轮数,内层循环for j in range(0, n-i-1)用于比较相邻的两个元素,并将较大的元素交换到右侧,直至整个列表有序。

C解答:我们首先定义了一个名为bubble_sort的函数,它接受一个整数数组arr和数组长度n作为输入,并直接在原数组上进行排序。外层循环for (int i = 0; i < n; i++)用于控制冒泡排序的轮数,内层循环for (int j = 0; j < n - i - 1; j++)用于比较相邻的两个元素,并将较大的元素交换到右侧,直至整个数组有序。

题目2(简单):

问题:
给定一个包含n个整数的列表,使用冒泡排序算法按降序对其进行排序。

Python解答:

python
Copy code
def bubble_sort_desc(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

# 示例输入和输出
input_list = [64, 34, 25, 12, 22, 11, 90]
sorted_list_desc = bubble_sort_desc(input_list)
print(sorted_list_desc)  # 输出:[90, 64, 34, 25, 22, 12, 11]
C解答:

c
Copy code
#include <stdio.h>

void bubble_sort_desc(int arr[], int n) {
    for (int i = 0; i < n; 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;
            }
        }
    }
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr) / sizeof(arr[0]);
    bubble_sort_desc(arr, n);

    // 输出排序结果
    printf("Sorted array in descending order: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}
解释:

Python解答:这个问题与上一个问题类似,只是在比较阶段的判断条件反转,即改为if arr[j] < arr[j+1]。这样就会把较小的元素逐渐冒泡到右侧,从而实现降序排序。

C解答:这个问题的C解答与上一个问题的C解答类似,只是在比较阶段的判断条件反转,即改为if (arr[j] < arr[j + 1])。这样就会把较小的元素逐渐冒泡到右侧,从而实现降序排序。

题目3(中等):

问题:
给定一个包含n个整数的列表,使用冒泡排序算法对其进行排序。如果在某一轮的冒泡过程中没有发生元素交换,说明列表已经有序,可以提前结束排序。

Python解答:

python
Copy code
def bubble_sort_optimized(arr):
    n = len(arr)
    for i in range(n):
        is_swapped = False
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
                is_swapped = True
        if not is_swapped:
            break
    return arr

# 示例输入和输出
input_list = [64, 34, 25, 12, 22, 11, 90]
sorted_list_optimized = bubble_sort_optimized(input_list)
print(sorted_list_optimized)  # 输出:[11, 12, 22, 25, 34, 64, 90]
C解答:

c
Copy code
#include <stdio.h>
#include <stdbool.h>

void bubble_sort_optimized(int arr[], int n) {
    for (int i = 0; i < n; i++) {
        bool is_swapped = false;
        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;
                is_swapped = true;
            }
        }
        if (!is_swapped) {
            break;
        }
    }
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr) / sizeof(arr[0]);
    bubble_sort_optimized(arr, n);

    // 输出排序结果
    printf("Sorted array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}
解释:

Python解答:这个问题的解答在冒泡排序的内层循环中增加了一个is_swapped变量,用于记录在当前轮是否进行过元素交换。如果某一轮没有进行交换,说明列表已经有序,可以提前结束排序,避免不必要的循环。外层循环仍然控制排序的轮数,内层循环执行元素比较和交换。

C解答:这个问题的C解答与上一个问题的C解答类似,只是在冒泡排序的内层循环中增加了一个is_swapped变量,用于记录在当前轮是否进行过元素交换。如果某一轮没有进行交换,说明数组已经有序,可以提前结束排序,避免不必要的循环。

题目4(中等):

问题:
给定一个包含n个整数的列表和一个整数k,使用冒泡排序算法对列表中第k小的元素进行查找。

Python解答:

python
Copy code
def find_kth_smallest(arr, k):
    n = len(arr)
    if k < 1 or k > n:
        return None

    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[k - 1]

# 示例输入和输出
input_list = [64, 34, 25, 12, 22, 11, 90]
k = 3
result = find_kth_smallest(input_list, k)
print(result)  # 输出:22
C解答:

c
Copy code
#include <stdio.h>

int find_kth_smallest(int arr[], int n, int k) {
    if (k < 1 || k > n) {
        return -1; // 返回一个合理的错误码,比如-1
    }

    for (int i = 0; i < n; 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;
            }
        }
    }

    return arr[k - 1];
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr) / sizeof(arr[0]);
    int k = 3;
    int result = find_kth_smallest(arr, n, k);
    if (result != -1) {
        printf("The %dth smallest element is: %d\n", k, result);
    } else {
        printf("Invalid value of k.\n");
    }
    return 0;
}
解释:

Python解答:在这个问题中,我们首先对列表进行了冒泡排序,得到一个有序列表。然后直接返回第k个位置上的元素,即arr[k - 1],因为Python中列表的索引是从0开始的。

C解答:在这个问题中,我们首先对数组进行了冒泡排序,得到一个有序数组。然后直接返回第k个位置上的元素,即arr[k - 1]。注意,C语言中数组的索引是从0开始的,所以我们使用arr[k - 1]来获取第k个元素。

题目5(较难):

问题:
给定一个包含n个整数的列表,使用冒泡排序算法按升序对其进行排序。但是,列表中有一些特殊元素,它们的排序位置是固定的(在输入列表中不会改变)。要求:在排序过程中避免对这些特殊元素进行交换操作,以提高排序的效率。

Python解答:

python
Copy code
def bubble_sort_with_fixed_elements(arr, fixed_indices):
    n = len(arr)
    for i in range(n):
        is_swapped = False
        for j in range(0, n-i-1):
            if j not in fixed_indices and arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
                is_swapped = True
        if not is_swapped:
            break
    return arr

# 示例输入和输出
input_list = [64, 34, 25, 12, 22, 11, 90]
fixed_indices = [0, 6]
sorted_list_with_fixed = bubble_sort_with_fixed_elements(input_list, fixed_indices)
print(sorted_list_with_fixed)  # 输出:[11, 25, 12, 22, 34, 64, 90]
C解答:

c
Copy code
#include <stdio.h>
#include <stdbool.h>

void bubble_sort_with_fixed_elements(int arr[], int n, int fixed_indices[], int num_fixed) {
    for (int i = 0; i < n; i++) {
        bool is_swapped = false;
        for (int j = 0; j < n - i - 1; j++) {
            if (!is_fixed_index(fixed_indices, num_fixed, j) && arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
                is_swapped = true;
            }
        }
        if (!is_swapped) {
            break;
        }
    }
}

bool is_fixed_index(int fixed_indices[], int num_fixed, int index) {
    for (int i = 0; i < num_fixed; i++) {
        if (fixed_indices[i] == index) {
            return true;
        }
    }
    return false;
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr) / sizeof(arr[0]);
    int fixed_indices[] = {0, 6};
    int num_fixed = sizeof(fixed_indices) / sizeof(fixed_indices[0]);

    bubble_sort_with_fixed_elements(arr, n, fixed_indices, num_fixed);

    // 输出排序结果
    printf("Sorted array with fixed elements: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}
解释:

Python解答:在这个问题中,我们需要在冒泡排序的过程中避免对特殊元素进行交换操作。我们在内层循环中增加了一个判断条件,即if j not in fixed_indices and arr[j] > arr[j+1]:,这样在比较元素和进行交换操作之前,我们首先检查j是否在fixed_indices中。如果不在,我们才执行交换操作。外层循环仍然控制排序的轮数,内层循环执行元素比较和交换。

C解答:在这个问题的C解答中,我们首先定义了一个辅助函数is_fixed_index,用于检查给定的索引是否在特殊元素的索引数组fixed_indices中。在冒泡排序的内层循环中,我们增加了判断条件,即if (!is_fixed_index(fixed_indices, num_fixed, j) && arr[j] > arr[j + 1]),这样在比较元素和进行交换操作之前,我们首先检查j是否在fixed_indices中。如果不在,我们才执行交换操作。外层循环仍然控制排序的轮数,内层循环执行元素比较和交换。

解释文章来源地址https://www.toymoban.com/news/detail-602197.html

题目1(简单):

问题:
给定一个包含n个整数的列表,使用冒泡排序算法按升序对其进行排序。

Python解答:

python
Copy code
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

# 示例输入和输出
input_list = [64, 34, 25, 12, 22, 11, 90]
sorted_list = bubble_sort(input_list)
print(sorted_list)  # 输出:[11, 12, 22, 25, 34, 64, 90]
题目2(简单):

问题:
给定一个包含n个整数的列表,使用冒泡排序算法按降序对其进行排序。

Python解答:

python
Copy code
def bubble_sort_desc(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

# 示例输入和输出
input_list = [64, 34, 25, 12, 22, 11, 90]
sorted_list_desc = bubble_sort_desc(input_list)
print(sorted_list_desc)  # 输出:[90, 64, 34, 25, 22, 12, 11]
题目3(中等):

问题:
给定一个包含n个整数的列表,使用冒泡排序算法对其进行排序。如果在某一轮的冒泡过程中没有发生元素交换,说明列表已经有序,可以提前结束排序。

Python解答:

python
Copy code
def bubble_sort_optimized(arr):
    n = len(arr)
    for i in range(n):
        is_swapped = False  # 初始化交换标志为False,标志本轮是否发生了交换
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:  # 比较相邻两元素,如果左边大于右边
                arr[j], arr[j+1] = arr[j+1], arr[j]  # 交换元素,将大的元素放在右边
                is_swapped = True  # 标志本轮发生了交换
        if not is_swapped:  # 如果本轮没有交换发生,说明列表已经有序,可以提前结束排序
            break
    return arr

# 示例输入和输出
input_list = [64, 34, 25, 12, 22, 11, 90]
sorted_list_optimized = bubble_sort_optimized(input_list)
print(sorted_list_optimized)  # 输出:[11, 12, 22, 25, 34, 64, 90]
题目4(中等):

问题:
给定一个包含n个整数的列表和一个整数k,使用冒泡排序算法对列表中第k小的元素进行查找。

Python解答:

python
Copy code
def find_kth_smallest(arr, k):
    n = len(arr)
    if k < 1 or k > n:
        return None  # 如果k不在合理范围内,返回None

    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[k - 1]  # 返回第k小的元素

# 示例输入和输出
input_list = [64, 34, 25, 12, 22, 11, 90]
k = 3
result = find_kth_smallest(input_list, k)
print(result)  # 输出:22
题目5(较难):

问题:
给定一个包含n个整数的列表,使用冒泡排序算法按升序对其进行排序。但是,列表中有一些特殊元素,它们的排序位置是固定的(在输入列表中不会改变)。要求:在排序过程中避免对这些特殊元素进行交换操作,以提高排序的效率。

Python解答:

python
Copy code
def bubble_sort_with_fixed_elements(arr, fixed_indices):
    n = len(arr)
    for i in range(n):
        is_swapped = False  # 初始化交换标志为False,标志本轮是否发生了交换
        for j in range(0, n-i-1):
            if j not in fixed_indices and arr[j] > arr[j+1]:  # 比较相邻两元素,如果左边大于右边,且左边的索引不在固定索引列表中
                arr[j], arr[j+1] = arr[j+1], arr[j]  # 交换元素,将大的元素放在右边
                is_swapped = True  # 标志本轮发生了交换
        if not is_swapped:  # 如果本轮没有交换发生,说明列表已经有序,可以提前结束排序
            break
    return arr

# 示例输入和输出
input_list = [64, 34, 25, 12, 22, 11, 90]
fixed_indices = [0, 6]  # 给定的特殊元素的索引列表
sorted_list_with_fixed = bubble_sort_with_fixed_elements(input_list, fixed_indices)
print(sorted_list_with_fixed)  # 输出:[11, 25, 12, 22, 34, 64, 90]

到了这里,关于跟着gpt学算法(c和python)-排序-冒泡排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据结构与算法】排序算法:冒泡排序,冒泡排序优化,选择排序、选择排序优化

    目录 一、冒泡排序 1、冒泡排序思想 2、冒泡排序算法的性能分析 代码实现: 二、选择排序 1、选择排序思想 2、选择排序算法的性能分析  代码实现: 1、冒泡排序思想 冒泡排序的基本思想是通过相邻元素之间的比较和交换来逐步将最大(或最小)的元素移到右边(或左边

    2024年01月19日
    浏览(49)
  • 【经典题】跟着凡人玩转C语言之快速排序算法

     💘作者:你我皆为凡人  💘博客主页:你我皆为凡人的博客  💘名言警句:时间不会为任何人停留,而事物与人,无时不刻也在变化着。每一个人,也都在不停向前!  💘觉得博主文章写的不错的话,希望大家三连(✌关注,✌点赞,✌评论),多多支持一下!!  💘其他作

    2023年04月11日
    浏览(36)
  • C++常见排序算法——冒泡排序算法

    首先说一下冒泡排序的基本算法思想: 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸

    2023年04月08日
    浏览(39)
  • 排序算法(1):冒泡排序

    (꒪ꇴ꒪ ),Hello我是 祐言QAQ 我的博客主页:C/C++语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍 快上🚘,一起学习,让我们成为一个强大的攻城狮! 送给自己和读者的一句鸡汤🤔: 集中起来的意志可以击穿顽石! 作者水平很有限,如果发现错误,请在评论区指

    2024年02月12日
    浏览(37)
  • 排序算法之冒泡排序(图解)

    冒泡排序 (英语: Bubble Sort )又称为 泡式排序 ,是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是

    2023年04月19日
    浏览(50)
  • 排序算法:冒泡排序

    冒泡排序是入门级的算法,但也有一些有趣的玩法。通常来说,冒泡排序有三种写法: 一边比较一边向后两两交换,将最大值 / 最小值冒泡到最后一位; 经过优化的写法:使用一个变量记录当前轮次的比较是否发生过交换,如果没有发生交换表示已经有序,不再继续排序;

    2024年02月11日
    浏览(45)
  • 常见排序算法之冒泡排序

    顾得泉: 个人主页 个人专栏: 《Linux操作系统》  《C/C++》  《LeedCode刷题》 键盘敲烂,年薪百万!         冒泡排序,英文名Bubble Sort,是一种相对基础的 交换排序 方法。这种排序算法的名字来源于它操作的过程,可以类比为数列中的每一个元素都可以像小气泡一样

    2024年02月05日
    浏览(43)
  • 排序:冒泡排序算法分析

    基于“交换”的排序︰ 根据序列中两个元素的比较结果来对换这两个记录在序列中的位置。 交换排序包括 冒泡排序 和 快速排序 。 1.算法原理 从后往前(或从前往后)两两比较相邻元素的值, 若为逆序(即 A [ i − 1 ] A [ i ] A[i-1]A[i] A [ i − 1 ] A [ i ] ) ,则交换它们,直到

    2024年02月07日
    浏览(38)
  • 排序算法之二:冒泡排序

    冒泡排序是交换排序 基本思想:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。 第一趟:将最大的值排到最后 第二趟:将次大的值排到倒

    2024年02月04日
    浏览(36)
  • 排序算法之详解冒泡排序

    冒泡排序顾名思义,就是像冒泡一样,泡泡在水里慢慢升上来,由小变大。 虽然冒泡排序和冒泡并不完全一样,但却可以帮助我们理解冒泡排序。 一组无序的数组,要求我们从小到大排列 我们可以先将最大的元素放在数组末尾 再将第二大的数放在数组的倒数第二个位置 再

    2023年04月25日
    浏览(87)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包