八大排序算法~简单选择排序【记录下标k变量的作用】

简介: 八大排序算法~简单选择排序【记录下标k变量的作用】

八大排序算法~简单选择排序【记录下标k变量的作用】


1,思想:打擂台法,数组中的前n-1个元素依次上擂台“装嫩”,后边的元素一个挨着一个不服,一个一个上去换掉它

2,优化:通过记录下标进行优化,减少交换的次数

//简单选择排序思想:打擂台法,数组中的前n-1个元素依次上擂台“装嫩”,后边的元素一个挨着一个不服,一个一个上去换掉它
    public static void main(String[] args) {
        int[] arr = {1, 4, 0, 6, 2, 7};
//        for (int i = 0; i < arr.length -1; i++){
//            for(int j = i + 1; j <= arr.length - 1; j++){
//                if(arr[i] > arr[j]){
//                    int temp = arr[i];
//                    arr[i] = arr[j];
//                    arr[j] = temp;
//                }
//            }
//        }
        //优化一下,通过具有标记作用的下标变量k(标记出最小元素),去标记所有元素比较完的最终结果后,
        // 然后在擂台上的元素,再跟有标记记号的元素进行交换
        for (int i = 0; i < arr.length -1; i++){
            int k = i;
            for(int j = i + 1; j <= arr.length - 1; j++){
                if(arr[k] > arr[j]){
                  k = j;
                }
            }
            if(k != i){ //最终有标记记号的元素不是它本身
                int temp = arr[i];
                arr[i] = arr[k];
                arr[k] = temp;
            }
        }
        System.out.println("排序后结果:");
        for(int i = 0; i < arr.length; i++){
            System.out.println(arr[i]);
        }
    }



目录
相关文章
|
5月前
|
搜索推荐 算法 C语言
C语言选择排序算法,从入门到精通只需1秒!
C语言选择排序算法,从入门到精通只需1秒!
|
2月前
|
搜索推荐 算法 Java
经典排序算法之-----选择排序(Java实现)
这篇文章通过Java代码示例详细解释了选择排序算法的实现过程,包括算法的基本思想、核心代码、辅助函数以及测试结果,展示了如何通过选择排序对数组进行升序排列。
经典排序算法之-----选择排序(Java实现)
|
2月前
|
算法
【算法】前缀和——寻找数组的中心下标
【算法】前缀和——寻找数组的中心下标
|
4月前
|
机器学习/深度学习 算法 搜索推荐
数据结构算法--2 冒泡排序,选择排序,插入排序
**基础排序算法包括冒泡排序、选择排序和插入排序。冒泡排序通过相邻元素比较交换,逐步将最大值“冒”到末尾,平均时间复杂度为O(n^2)。选择排序每次找到剩余部分的最小值与未排序部分的第一个元素交换,同样具有O(n^2)的时间复杂度。插入排序则类似玩牌,将新元素插入到已排序部分的正确位置,也是O(n^2)复杂度。这些算法适用于小规模或部分有序的数据。**
|
4月前
|
搜索推荐
排序算法---选择排序-----详解&&代码
排序算法---选择排序-----详解&&代码
|
4月前
|
算法 搜索推荐
数据结构与算法-选择排序
数据结构与算法-选择排序
28 4
|
4月前
|
搜索推荐 算法
【C/排序算法】:堆排序和选择排序
【C/排序算法】:堆排序和选择排序
28 0
|
4月前
|
算法 搜索推荐 Java
JavaSE——算法(1/2):认识、冒泡排序、选择排序及优化(介绍、详细图解、代码)
JavaSE——算法(1/2):认识、冒泡排序、选择排序及优化(介绍、详细图解、代码)
29 0
|
4月前
|
存储 算法 C语言
数据结构和算法——堆排序(选择排序、思路图解、代码、时间复杂度、堆排序及代码)
数据结构和算法——堆排序(选择排序、思路图解、代码、时间复杂度、堆排序及代码)
30 0
|
4月前
|
算法 Java Go
【经典算法】LeetCode28 找出字符串中第一个匹配项的下标(Java/C/Python3实现含注释说明,Easy)
【经典算法】LeetCode28 找出字符串中第一个匹配项的下标(Java/C/Python3实现含注释说明,Easy)
33 0
下一篇
无影云桌面