C#实现冒泡排序和插入排序算法

C#实现冒泡排序和插入排序算法

冒泡排序算法

冒泡排序算法是一种基本的排序算法,其基本思想是通过对相邻的元素进行比较和交换,逐渐把待排序的元素交换到相应的位置上。

在C#中,实现冒泡排序非常简单,代码示例如下:

public static void BubbleSort(int[] arr)
{
    int len = arr.Length;
    for (int i = 0; i < len - 1; i++)
    {
        for (int j = 0; j < len - 1 - i; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                int temp = arr[j + 1];
                arr[j + 1] = arr[j];
                arr[j] = temp;  
            }
        }
    }
}

代码中给出了一个静态方法 BubbleSort ,该方法接受一个整数数组作为输入,按照冒泡排序的方法排序这个数组。具体实现中,用两层循环嵌套,外层循环控制排序的趟数,内层循环实现元素交换。通过比较相邻元素的大小,如果前面的元素大于后面的元素,则交换它们的位置。每趟排序可以确定一个最大值,将最大值放到最后的位置,排序趟数共(len-1)次即可完成排序。

下面给出一个示例,演示如何使用 BubbleSort 方法来对一个整数数组进行排序:

int[] arr = { 5, 1, 6, 2, 4, 3 };
BubbleSort(arr);
foreach (int a in arr)
{
    Console.Write(a + " ");
}

输出结果为:1 2 3 4 5 6,说明该方法能够正常工作并正确排序整数数组。

插入排序算法

插入排序算法是另一种基本排序算法,其基本思路是将一个待排序的元素插入到已经排好序的序列中,从而得到一个包含这个元素的排好序的新序列。

在C#中,实现插入排序也非常简单,代码示例如下:

public static void InsertionSort(int[] arr)
{
    int len = arr.Length;
    for (int i = 1; i < len; i++)
    {
        int j = i - 1;
        int temp = arr[i];
        while (j >= 0 && arr[j] > temp)
        {
            arr[j + 1] = arr[j];
            j--;
        }
        arr[j + 1] = temp;
    }
}

代码中给出了一个静态方法 InsertionSort ,该方法接受一个整数数组作为输入,按照插入排序的方法排序这个数组。具体实现中,使用一个外层循环,从数组第二个元素开始遍历,用一个临时变量temp保存当前正在排序的元素。内层循环中,嵌套一个while循环,不断地将前面有序部分的元素往后移动,如此一来可以与当前正在排序的元素temp比较。如果前面有序部分的元素比temp大,则将这个元素向后移动一位。当找到一个比temp小的元素时或循环到了数组的开头时,将当前的temp元素插入到这个位置上,插入就完成了。循环执行,直到i=len-1时,数组就已经排好序了。

下面给出一个示例,演示如何使用 InsertionSort 方法来对一个整数数组进行排序:

int[] arr = { 5, 1, 6, 2, 4, 3 };
InsertionSort(arr);
foreach (int a in arr)
{
    Console.Write(a + " ");
}

输出结果为:1 2 3 4 5 6,说明该方法能够正常工作并正确排序整数数组。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现冒泡排序和插入排序算法 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 前端JavaScript多数元素的算法详解

    前端JavaScript多数元素的算法详解 算法介绍 多数元素在一个数组中出现次数超过一半的元素,因此要找到多数元素,需要考虑其出现次数是否超过了数组长度的一半。本文介绍三种常见的多数元素算法,分别为排序法、哈希表法和摩尔投票法。 排序法 排序法的思路是先对数组进行排序,然后返回数组中间的那个元素即可。由于多数元素出现次数超过了数组长度的一半,因此排序后中间…

    算法与数据结构 2023年5月19日
    00
  • python manim实现排序算法动画示例

    首先,为了能够实现“python manim实现排序算法动画示例”,我们需要以下准备工作: 安装python及相关依赖:Manim(用于动画制作)、Numpy(用于数值计算)等。 了解Python编程语言的基础语法和数据类型。 接下来,我们可以按照以下步骤进行排序算法动画制作: 选择一种排序算法,并按照代码形式将其实现。 使用Python的可视化库,将算法过…

    算法与数据结构 2023年5月19日
    00
  • c#实现选择排序的示例

    C#实现选择排序主要包含以下步骤: 定义数组 遍历数组,选出最小元素,并记录其索引 交换当前索引和最小值索引的元素 循环执行步骤2和步骤3,直到整个数组排序完成 以下是实现选择排序的C#示例: 示例1: int[] arr = new int[]{5, 3, 9, 1, 7, 4}; for (int i = 0; i <arr.Length; i++…

    算法与数据结构 2023年5月19日
    00
  • C#实现希尔排序

    C#实现希尔排序攻略 简介 希尔排序(Shell Sort)是插入排序的一种改进版本,也称为缩小增量排序(Diminishing Increment Sorting)。希尔排序首先将要排序的序列分成若干个子序列,分别进行插入排序,待子序列基本有序时,再对全体记录进行一次直接插入排序。其算法主要思想是将原序列按一定间隔分为若干子序列,对每个子序列分别进行插入排…

    算法与数据结构 2023年5月19日
    00
  • JavaScript排序算法之希尔排序的2个实例

    下面我将详细讲解“JavaScript排序算法之希尔排序的2个实例”的完整攻略。 算法简介 希尔排序(Shell Sort)是插入排序的一种更高效的改进版本,也称为缩小增量排序。它通过在不断缩小步长的序列中对数据进行多轮分组插入排序来进行排序。首先将整个待排序的记录序列分割成为若干个子序列分别进行直接插入排序,待整个序列中的元素基本有序时,再对全体元素进行一…

    算法与数据结构 2023年5月19日
    00
  • 设计师灵感来源 细数上市公司LOGO背后的含义

    设计师灵感来源 作为设计师,找灵感是创作过程中的一项重要任务,而且好的设计往往都来自于深度的思考和充足的灵感。那么,设计师在哪里寻找灵感呢? 灵感来源 1. 观察 设计师可以通过观察日常生活中的事物来获取灵感,例如自然风光、建筑、图形等。观察中的选择与细节是关键,需要有敏锐的观察力和审美能力。 2. 学习 学习可以让设计师积累更多知识与思想,这也为他们提供了…

    算法与数据结构 2023年5月19日
    00
  • Go归并排序算法的实现方法

    Go归并排序算法的实现方法 简介 归并排序(Merge Sort)是一种经典的分治算法,它将一个大问题分解为若干个小问题,通过递归将小问题排好序,最后再将小问题合并起来,得到排序的结果。 归并排序的最坏时间复杂度为$ O(nlogn)$,且具有稳定性,是较为优秀的排序算法之一。 实现方法 归并排序的实现分为两个步骤,分别是分解和合并: 分解 分解过程需要递归…

    算法与数据结构 2023年5月19日
    00
  • STl中的排序算法详细解析

    STl中的排序算法详细解析 概述 在STL中,sort是一种常用的排序算法。sort算法旨在将元素从小到大排序,但也可以使用cmp函数指定排序方式。 算法实现 sort算法基于“快速排序”算法的实现。其基本思想是从待排序列中选取一定的数值作为划分元素(pivot),通过一趟排序将所有比该元素小的数放到它的左边,所有比该元素大的数放到它的右边,然后再对左右两个…

    算法与数据结构 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部