`
cheeruplc
  • 浏览: 115375 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

再读排序

阅读更多

再次写冒泡法排序 我写了一个多小时 以前也觉得会了 可是应该是没有从心里理解 所以再次写冒泡法排序和第一次写差不多了 所以理解是很重要的 不需要刻意去记住 并且不会轻易忘记
这里只谈及最常见的冒泡法和选择法排序:
其实这两种排序的大体思想是一样的,都是对一列数取最值 然后再将剩下(除去最值以外)的数据进行排序,也就是说归根究底也就是两种方式采用了不同的取最值的方法而已;
冒泡法:取最值的方法是将相邻的两个数据做比较如果比之大或小则交换位置 这样就保证每次进行比较都会将一个最值传到最后 也就得出了最值 最后最值下标所指向的值和与之最初比较的数值交换
选择法:用第一个给定值通过遍历和排在其后的所有数据进行比较 如果比之大或小 则记录其最终最值下标
从这两种比较方式上来看 冒泡法实在符合比较大小条件之后就都进行数值交换 而选择法排序则是在比较大小之后记录其最值下标 只进行一次交换 效率稍高
贴上两种排序方法
1,冒泡法
       private int[] Sort(int[] arrInt)
        {
            for (int i = 0;i < arrInt.Length-1 ; i++)
            {
                for (int j = 0; j < arrInt.Length-i-1; j++)
                {
                    if (arrInt[j+1] > arrInt[j])
                    {
                        int temp = 0;
                        temp= arrInt[j + 1];
                        arrInt[j + 1] = arrInt[j];
                        arrInt[j] = temp;
                    }
                }                    
            }
            return arrInt;
        }


2.选择法
        private int[] SortBySelect(int[] ArrInt)
        {
            int min = 0;
            for (int i = 0; i < ArrInt.Length-1;i++ )
            {
                min = i;
                for (int j = i+1; j < ArrInt.Length; j++)
                {
                    if (ArrInt[j] < ArrInt[min])
                    {
                        min = j;
                    }
                }
                int temp = 0;
                temp = ArrInt[min];
                ArrInt[min] = ArrInt[i];
                ArrInt[i] = temp;
            }
            return ArrInt;
        }


温故而知新!
分享到:
评论

相关推荐

    读懂冒泡排序

    遍历数列的工作是重复进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序属于比较排序算法,其在实现时使用了简单的双层循环来...

    外排序(磁盘排序)之多路归并排序的简单实现

    多路归并排序是外排序中常用的一种技术,其核心思想是先将数据分割成若干个可以放入内存的部分进行内部排序,然后再将这些部分按照一定的规则合并成一个完整的有序序列。这个过程中涉及的关键步骤包括: 1. **内存...

    java使用stream对日期排序

    如果需要按照特定规则(例如,先按月份排序,再按日期排序)排序,可以这样实现: ```java List&lt;LocalDate&gt; sortedDates = dates.stream() .sorted(Comparator.comparing(LocalDate::getMonth) .thenComparing...

    易语言巧妙IP排序

    最后,再通过`IntToIPString`将排序后的整数转换回IP地址字符串。 以下是一个简单的易语言IP排序程序设计思路: 1. 定义一个包含IP地址的字符串数组。 2. 使用`IPStringToInt`将数组中的每个IP地址转换为整数。 3....

    快速排序代码整合集合

    接着对这两部分再进行同样的操作,直到所有元素都在正确的位置上。以下是对三种编程语言——C语言、Java和Python实现快速排序的详细说明。 1. **C语言实现**: 在C语言中,快速排序通常使用指针和递归来实现。首先...

    c++排序基本程序排序.zip

    在C++编程语言中,排序是一项基础...而`c++排序基本程序排序.zip`这个压缩包可能包含了上述排序算法的C++实现代码,通过学习这些代码,你可以更直观地理解这些算法的工作原理,并从中学习如何编写高效、可读的C++代码。

    用stl实现基数排序算法

    一种方法是在排序前将所有数字加上一个足够大的正数,使得它们全部变为非负,然后进行排序,最后再减去这个值。STL的容器和算法都支持负数,所以这一步并不困难。 6. **检查边界条件**:在处理过程中,需要不断检查...

    数据结构排序以及排序的技巧

    - **归并排序**:将序列分成两半分别排序再合并,稳定且效率高,时间复杂度为O(nlogn)。 - **希尔排序**:基于插入排序,通过设置增量序列来减少比较和交换的次数,不稳定。 - **基数排序**:根据每个数字位进行...

    汇编语言数据统计与排序

    汇编语言使用符号表示机器语言指令,使得编程过程相对易读和理解。在这个主题中,我们将深入探讨汇编语言在数据统计和排序方面的应用。 一、汇编语言基础知识 汇编语言中的每一条指令都对应着一个特定的机器码,...

    C 语言 二叉树 读文件并排序 Linux 底下

    若需要数组形式的排序结果,可以使用中序遍历(In-order Traversal):先遍历左子树,访问根节点,再遍历右子树,这样可以按升序输出二叉树中的所有元素。 5. **Linux环境**:在Linux下,我们可能需要使用`...

    多种排序种类

    排序算法的目的就是将一组无序的数据按照一定的顺序排列起来,使得数据变得有序和可读。今天,我们将讨论八种不同的排序算法,包括直接插入排序、希尔排序、简单选择排序等。 直接插入排序 直接插入排序是一种简单...

    数据结构排序算法python

    Python作为一门易读性强、语法简洁的编程语言,是学习和实现排序算法的理想选择。本资源包含了一个名为`SortSolution.py`的Python文件,里面实现了几种经典的排序算法,包括插入排序、选择排序、冒泡排序和快速排序...

    排序算法汇总

    **希尔排序**:希尔排序是一种改进的插入排序,通过引入增量(gap)的概念,先对距离较远的元素进行排序,然后再逐渐减少增量,最终达到完全排序的效果。这种方法可以显著提高插入排序的效率,尤其是在处理大量数据...

    一亿组数据排序.docx

    重复上述步骤,直到所有块均读完,则全排序结束。 改进方案:分页显示 如果需要对大数据集进行分页显示,可以对全排序过程进行改进。假设我们要显示一亿条记录全排序后的一千万后的 100 条,则可以按照以下步骤...

    txt行去重排序(考虑了大数据)

    但是,处理大数据时,可以考虑使用外部排序算法,即将数据分成若干小块分别排序,然后再合并。这个过程可能涉及到临时文件的创建和使用。 6. **图形化界面**:虽然没有提供具体的代码,但在描述中提到有图形化界面...

    C++ 各种排序性能的比较

    - 结果展示:将排序结果以列表形式打印,确保结果清晰易读。 在程序设计中,可以使用模块化的方法,如定义主函数、输入函数、操作函数(包括各种排序算法)等。通过程序流程图清晰展示各个函数间的调用关系。此外,...

    文件和外排序:文件的分类,外存上排序

    外排序通常涉及将大数据集分割成可以在内存中处理的小块,然后对每个小块进行内部排序,最后再通过合并排序将这些小块整合成一个有序的文件。 **外排序**的核心算法是合并排序,它分为两个阶段。预处理阶段,数据被...

    Kotlin-使用kotlin实现的排序算法.zip

    Kotlin语言在实现这些排序算法时,得益于其强大的函数式编程特性,如高阶函数、lambda表达式等,代码通常更加简洁和可读。例如,可以使用`sortedBy`或`sortedWith`函数进行排序,而无需手动编写复杂的循环逻辑。 在...

    一个简单的读取二进制文件并进行排序

    完成读取后,可以调用`std::sort`对数组进行排序,最后再将排序后的结果写回二进制文件。 以下是大致的代码流程示例(使用C++): ```cpp #include #include // 假设文件中的数据是int类型 void sortBinaryFile...

    基于python的冒泡排序相关资料课程设计

    遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 基于Python的冒泡排序实现具有代码简洁、易读性强的特点。...

Global site tag (gtag.js) - Google Analytics