怎么区别冒泡排序和简单选择排序???就这!

简单选择排序:对要进行排序的数组,从头开始选中某一个元素 ,依次和后面的元素进行比较,将较大的数据放在后面,每轮比较都以下一轮的 第一个元素开始

package com.itheima.demo1;

import java.util.Arrays;

/**
 * @author ChenY@itheima.com
 * @date 2022/7/29 20:34
 */
public class SelectSort {
    public static void main(String[] args) {
        int [] arr = {45,25,35,2,55,15};
        for (int i = 0; i < arr.length - 1; i++) {
            int k = i;
            for (int j = i+1; j < arr.length; j++) {
                if(arr[j]<arr[k])
                {/** 这里用来记录最小的位置*/
                    k = j;
                }
                if(k!=i)
                /** 交换i和k*/
                {
                    int temp = arr[k];
                    arr[k] = arr[i];
                    arr[i] = temp;
                }

            }
        }
        System.out.println(Arrays.toString(arr));

    }
}
 

这为了在形式上区别冒泡排序,确定一个用来记录元素最小的变量 k 在外层循环之后 将 外层循环的下标 i 赋值给 k。在进行内层循环,判断 arr[ j ] 和arr[ k ]的大小 如果arr[j]<arr[k],则更新最小元素的下标位置,最后 判断 记录的最小元素的下标是否和外层循环的 元素 i 相等,不等要交换 两个下标对应的元素



全部评论

相关推荐

Elastic90:公司不要求加班,但 又不允许你准点下班,经典又当又立
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务