代码编织梦想

1、通过多次的循环,将小的数调换位置,直到完全有序

2、当前的最小值是跟其后面的数进行比较,前面的数已有序


import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

public class SelectSort {
    public static void main(String[] args){
//        int[] arr = {101,34,119,1,-1};
        int[] arr = new int[80000];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = (int)(Math.random()*8000);

        }
        System.out.println("测试前:");
        Date date1 = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(simpleDateFormat.format(date1));
        selectSort(arr);
        System.out.println("测试后:");
        Date date2 = new Date();
        System.out.println(simpleDateFormat.format(date2));
        // 选择排序,用2秒
//        selectSortSelf(arr);
//        System.out.println(Arrays.toString(arr));

    }
    // 选择排序
    public static void selectSortSelf(int[] arr){
        // 使用逐步进行,分解,自己先给自己比较一下先(尴尬的很这个算法。自己想的)
        int temp;
        for (int j = 0; j < arr.length-1; j++) {
            for (int i = j; i < arr.length; i++) {
                temp = arr[j];
                if(arr[i]< temp){// 找到更小的,进行交换
                    arr[j] = arr[i];
                    arr[i] = temp;
                }

            }

        }

    }
    public static void selectSort(int[] arr){

        int minIndex;
        int min;
        for (int i = 0; i < arr.length-1; i++) {
            // 第一轮
            minIndex = i;
            min = arr[i];
            for (int j = i+1; j < arr.length; j++) {
                if(min>arr[j]){ // 发现更小的就交换
                    min = arr[j]; // 重置min
                    minIndex = j; // 重置minIndex
                }

            }
            // 将最小值,放在arr[0] ,交换
            if(minIndex!=i){// 当小于当前的min值时,不做交换处理
                arr[minIndex] = arr[i];
                arr[i] = min;
            }
        }

        /*
        // 第二轮
        minIndex = 1;
        min = arr[1];
        for (int j = 0+2; j < arr.length; j++) {
            if(min>arr[j]){
                min = arr[j]; // 重置min
                minIndex = j; // 重置minIndex
            }

        }
        // 将最小值,放在arr[0] ,交换
        if(minIndex!=1){
            arr[minIndex] = arr[1];
            arr[1] = min;
        }*/

    }

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/vintind/article/details/128689230

数据结构-顺序表基本操作的实现(含全部代码)_lady_killer9的博客-爱代码爱编程_数据结构顺序表代码

今天起开始编写数据结构中的各种数据结构及其算法的实现。 主要依据严蔚敏版数据结构教材以及王道数据结构考研辅导书。 今天是线性表中的顺序表的实现,主要实现函数如下,读者有需要可以评论,我可以适当加几个。 CreateList(SqList &L,int n) 参数:顺序表L,顺序表长度n 功能:创建长度为的顺序表 时间复杂度:O(n)InitL

图解!24张图彻底弄懂九大常见数据结构!-爱代码爱编程

​数据结构想必大家都不会陌生,对于一个成熟的程序员而言,熟悉和掌握数据结构和算法也是基本功之一。数据结构本身其实不过是数据按照特点关系进行存储或者组织的集合,特殊的结构在不同的应用场景中往往会带来不一样的处理效率。 常用的数据结构可根据数据访问的特点分为线性结构和非线性结构。线性结构包括常见的链表、栈、队列等,非线性结构包括树、图等。数据结构种类繁多,本

数据结构,计算机网络,数据库,计算机组成原理,操作系统有哪些好的网课值得推荐?-爱代码爱编程

大家好,我是小林哥。 作为自学CS过来的老学长,看过中国mooc、b站、网易云课堂很多视频,期间踩了不少坑,这次掏心掏肺前来跟分享下,网上的资源是免费的,但是找到质量好的是需要时间成本的! 数据结构,计算机网络,数据库,计算机组成原理,操作系统这些在大学期间一定要掌握好来,因为现在互联网大厂面试都爱考察这些内容,一句话,计算机基础,yyds! 可能大

数据结构:八种数据结构大全!-爱代码爱编程

数据结构 1.1 数据结构概述 数据结构是计算机存储、组织数据的方式;通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构的优良将直接影响着我们程序的性能;常用的数据结构有:数组(Array)、栈(Stack)、队列(Queue)、链表(Linked List)、树(Tree)、图(Graph)、堆(Heap)、散列表(Hash)等;

《算法和数据结构》算法篇-爱代码爱编程

前言   我大学的时候比较疯狂,除了上课的时候,基本都是在机房刷题,当然,有时候连上课都在想题目,纸上写好代码,一下课就冲进机房把代码敲了,目的很单纯,为了冲排行榜,就像玩游戏一样,享受霸榜的快感。  当年主要是在 「 杭电OJ 」 和 「 北大OJ 」 这两个在线平台上刷题,那时候还没有(「 LeetCode 」、「 牛客 」、「 洛谷 」

线性数据结构之队列(queue)_lingering fear的博客-爱代码爱编程

一.队列(Queue) 队列是一种用来存储数据的数据结构 , 与链表和栈类似 , 数据到达的次序是队列的关键 , 类似于生活中我们在排队购买东西时 , 第一个人是队首 , 最后一个人是队尾 , 第一个人先买到东西后离开 ,

数据结构-选择排序_小火娃的博客-爱代码爱编程

实现过程 从所有未排序的数中找到一个最小的数将这个数放到已排好序的部分的最后 实现代码 package com.xiaohuowa.select; import java.util.Arrays; /** * @

数据结构—笔记整理—初识数据结构_vim_飞鱼的博客-爱代码爱编程

学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。 目录 数据结构初定义 常用数据结构 这 8 种数据结构有什么区别呢? ①、数组 ②、链表 ③、栈 ④、队列 ⑤、树 ⑥、堆 ⑦、图 ⑧、哈希表 数据结构 集合结构(非线性结构) 线性结构 数组 线性表 存储结构 模式匹配 二叉树

java基础学习 day34(stringbuilder,链式编程)-爱代码爱编程

1. StringBuilder概述 StringBuilder可以看作是一个容器,创建之后里面的内容是可变的作用:提高字符串的操作效率 例如: String s1 = “aaa”; String s2 = “bbb”;