`

两个排序算法--冒泡排序,选择排序

阅读更多
/*
     * 冒泡排序法
     * 算法:第1趟排序找出对数组(array[0]--array[length-1])中最大的一个,把它放大array[length-1]
     *         第2趟排序找出对数组(array[0]--array[length-2])中最大的一个,把它放大array[length-2]
     *         ......
     *         第n趟排序找出对数组(array[0]--array[length-n])中最大的一个,把它放大array[length-n]
     */
    @Test
    public void testBubbleSort() {
        //初始化数组
        int[] lastArray = initArray;
        //外层循环lastArray.length-1次循环
        for(int i=lastArray.length-1; i>0; i--) {
            //外层循环i次循环
            for(int j=0; j<i; j++) {
                //当前面的数据大于后面的数据,把两个数据进行交换
                if(lastArray[j] > lastArray[j+1]) {
                    int tempInt = lastArray[j];
                    lastArray[j] = lastArray[j+1];
                    lastArray[j+1] = tempInt;
                }
            }
        }
        System.out.println(Arrays.toString(lastArray));
    }
    
    //选择排序和冒泡基本算法差不多,也是外层循环进行n次,在内部循环是每次都把最大的数据换到本次循环的最后面
    //比如第一次把最大的换到第n个,第2次换到第n-1上
    @Test
    public void testSelectSort() {
        //初始化数组
        int[] lastArray = initArray;
        //外层循环lastArray.length-1次循环
        for(int i=0; i<lastArray.length; i++) {
            for(int j=0; j<lastArray.length-1-i; j++) {
                //当第j个数据大于本次循环的最后一个数据时把两个数据进行交换
                if(lastArray[lastArray.length-1-i] < lastArray[j]) {
                    int tempInt = lastArray[j];
                    lastArray[j] = lastArray[lastArray.length-1-i];
                    lastArray[lastArray.length-1-i] = tempInt;
                }
            }
        }
        System.out.println(Arrays.toString(lastArray));
    }
分享到:
评论
1 楼 dulltiger 2008-12-27  
初学,谢谢...
明白了

相关推荐

    冒泡排序-排序过程 冒泡排序-排序过程

    设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上"漂浮",如此反复进行,直至最后任何两个气泡...

    FPGA并行快速排序算法-位宽可设

    只需两个时钟即可输出12个数据的排序结果,内容简单易懂

    双向冒泡排序算法

    设计一个双向冒泡排序算法。要求用C/C++实现。

    python-冒泡排序算法.docx

    在函数内部,我们使用两个嵌套的循环来实现冒泡排序算法。外层循环用于控制排序的轮数,内层循环用于比较相邻的元素并进行交换。 python-冒泡排序算法全文共3页,当前为第1页。 在内层循环中,我们使用了一个

    冒泡算法和选择算法演示程序

    基于C语言的排序算法演示程序,包含了“冒泡算法”和“选择算法”两个基础的排序算法。学习程序设计,重点是对算法的理解。本程序动态演示了排序过程,详尽体现涉及到的各个细节,力求让初学者更好地理解这两个算法...

    Java排序算法实现:冒泡与选择排序示例代码

    这里提供了两种常见的排序算法实现:冒泡排序和选择排序。 冒泡排序(Bubble Sort) 是一种基本的排序算法,它通过多次遍历数组,比较相邻元素的大小并交换它们,从而使最大(或最小)的元素逐渐移动到数组的最后。...

    冒泡与插入排序 两个排序算法

    冒泡排序与插入排序源程序包伙方法和解释,还有主要核心程序

    java算法——冒泡排序

    * 冒泡排序: * 每次在无序队列里将相邻两个数一次进行比较, * 将小数调到前面,逐次比较,直至将最大的数移到 * 最后。将剩下的N-1个数继续比较,将次大数移至 * 倒数第二位。

    C语言排序算法冒泡排序

    冒泡排序是一种简单且常见的排序算法,它重复地遍历待排序的元素,并依次比较相邻的两个元素,如果它们的顺序不正确则交换它们,直到整个序列排序完成。以下是对C语言冒泡排序的描述,不包含具体的代码实现: 基本...

    Java实现几种常见排序方法-直插、冒泡、选择、快排、堆排等

    日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一...

    排序算法的综合实例(源程序+设计文档)

    29. 排序综合(限1 人完成) 利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。 要求: ...PS:采用了直接选择排序算法、冒泡排序、希尔排序、直接插入排序这四种排序算法。

    七种排序算法(包括直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,简单选择排序,归并排序)

    七种排序算法(包括直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,简单选择排序,归并排序) 还有两道题 1./*设计并实现一个有效的对n个整数重排的算法,使得所有负数位于非负数之前,给出算法的性能...

    冒泡排序算法的实现,用C语言实现。

    冒泡排序算法的实现,用C语言实现,并含有测试程序。程序已经测试通过。 /* * --冒泡排序-- * 依次比较相邻的两个数,将大数放在前面,小数放在后面。 * 即首先比较第1个和第2个数,将大数放前,小数放后。 ...

    python冒泡排序随机生成10个100以内(完美运行)

    这是一个简单的Python程序,用于...通过阅读并理解这样简短但涵盖两个知识点的例子,可以加深对语言和算法的理解,为学习更高级的内容打下基础。因此,我认为这个资源具有一定的参考价值,尤其适合Python和算法入门学习者。

    排序算法:冒泡排序所有源码src.zip

    每一轮中,相邻两个元素之间两两比较,假设目前处于第i轮比较,那么第i轮一共应该比较m-i次。 这个算法的由来是因为,最大(最小)的元素会像烧水时的水泡一样,冒到顶端一样,所以起名为冒泡排序 ————————...

    选择排序,冒泡排序算法(JAVA源代码)

    简单的选择排序,冒泡排序源代码,一个文件是测试类,另外两个分别是选择排序和冒泡排序的代码

    java基础冒泡排序.ppt

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 走访元素的工作是重复...

    TIA博途中实现冒泡排序的两种SCL语言算法.docx

    TIA博途中实现冒泡排序的两种SCL语言算法

    java的两种冒泡排序算法

    面试面多了冒泡也写的多了,这个里面有两种方式,相互学习下哦!

    Sorter排序类实现

    设计一个负责排序的程序包,实现多种排序算法,至少包括插入排序、冒泡排序和快速排序算法。 要求: 1.可以对任何简单类型和任意对象进行排序 2.可以支持升序、降序、字典排序等多种顺序要求 3.可以随意增加排序算法...

Global site tag (gtag.js) - Google Analytics