美文网首页
数据结构与算法(二)

数据结构与算法(二)

作者: 陆笪_刑道荣 | 来源:发表于2022-06-07 14:18 被阅读0次

    排序算法

    1.内部排序:数据记录在内存中进行排序

    常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。


    1.png

    2.外部排序:因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。

    冒泡排序

    (1)算法步骤:

    • 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

    • 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

    • 针对所有的元素重复以上的步骤,除了最后一个。

    • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

    (2)参考代码:

    // Java 代码实现
     public class BubbleSort implements IArraySort {
     
         @Override
         public int[] sort(int[] sourceArray) throws Exception {
             // 对 arr 进行拷贝,不改变参数内容
             int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);
     
             for (int i = 1; i < arr.length; i++) {
               // 设定一个标记,若为true,则表示此次循环没有进行交换,也就是待排序列已经有序,排序已经完成。
                boolean flag = true;
    
                for (int j = 0; j < arr.length - i; j++) {
                    if (arr[j] > arr[j + 1]) {
                        int tmp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = tmp;
                        flag = false;
                    }
                }
                if (flag) {
                    break;
                }
            }
            return arr;
        }
    }
    

    相关文章

      网友评论

          本文标题:数据结构与算法(二)

          本文链接:https://www.haomeiwen.com/subject/xmimprtx.html