选择排序基本思想及复杂度分析

/*选择排序    (不稳定算法)
 * 基本思想:两个for循环嵌套,内部for循环用来找到最大(小)的元素,外部循环用来放置找到的元素
 * 复杂度:需要遍历数组才能找到峰值元素,所以复杂度与原始序列是否有序无关,最好最坏和平均情况的时间复杂度都为O(n^2);
 * 需要一个临时变量用来交换数组内数据位置,所以空间复杂度为O(1)
 */
 

        public static void xuanZeSort ( int[] a)
        {

            for (int i = 0; i < a.length - 1; i++) {
                for (int j = i + 1; j < a.length; j++) {
                    if (a[i] > a[j]) {
                        int temp = a[i];
                        a[i] = a[j];
                        a[j] = temp;
                    }
                }
            }
            for (int j : a)  //j是a遍历出的每个元素,不是下标
            {
                System.out.print(j + " ");

            }

        }

Ps:博文为博主的学习笔记,算法只是按照自己的理解简单分析,初学者建议看详细的图文讲解,如果有错误,欢迎交流指正

你可能感兴趣的:(基础知识)