java 实现排序

Wesley13
• 阅读 644
package com.hsm.mySort;

import java.util.Random;

/**
 * 排序
 * @author steven
 *
 */
public class MySort {
    public static void main(String[] args) {
        Random rd=new Random();
        int a[]=new int[100];
        for(int i=0;i<100;i++){
            a[i]=rd.nextInt(1000);
        }
        //bubbleSort(a);
        //insertSort(a);
        //shellSort(a);
        selectSort(a);
    }
    /**
     * 冒泡排序
     * @param a
     */
    static void bubbleSort(int [] a){
        int temp=0;//临时交换
        for(int i=0;i<a.length;i++){//遍历
            boolean flag=false;//标识有没有交换
            for(int j=i+1;j<a.length;j++){
                if(a[i]>a[j]){
                    temp=a[i];
                    a[i]=a[j];
                    a[j]=temp;
                    flag=true;
                }
            }
            if(flag) break;//没有交换元素表明已经是有序的了
        }
        for (int i : a) {//输出排好序的元素
            System.out.println(i);
        }
    }
    /**
     * 插入排序
     * @param a
     */
    static void insertSort(int [] a){
        int temp=0;//临时交换
        int j=0;
        for(int i=1;i<a.length;i++){//遍历
            temp=a[i];
            for(j=i;j>0&&a[j-1]>temp;j--){//将元素往后移
                a[j]=a[j-1];
            }
            a[j]=temp;//将元素插入到正确的位置
        }
        for (int i : a) {//输出排好序的元素
            System.out.println(i);
        }
    }
    /**
     * 希尔排序
     * @param a
     */
    static void shellSort(int [] a){
        int temp=0;
        int j;
        for(int d=a.length/2;d>0;d/=2){//间隔每次为原来的1/2
            for(int i=0;i<a.length/d;i++){//这个地方其实就是插入排序
                temp=a[i];
                for(j=i;j>=d&&a[j-d]>temp;j-=d){//将元素往后移
                    a[j]=a[j-d];
                }
                a[j]=temp;//将元素插入到正确的位置
            }
        }
        for (int i : a) {//输出排好序的元素
            System.out.println(i);
        }
    }
    /**
     * 选择排序
     * @param a
     */
    static void selectSort(int [] a){
        int temp=0;//记录最小值的位置
        int temp2=0;
        for(int i=0;i<a.length;i++){//遍历
            boolean flag=false;//标识有没有交换
            for(int j=i;j<a.length;j++){
                if(a[j]<a[temp]){
                    temp=j;
                }
            }
            if(flag) break;//没有交换元素表明已经是有序的了
            temp2=a[i];
            a[i]=a[temp];
            a[temp]=temp2;
        }
        for (int i : a) {//输出排好序的元素
            System.out.println(i);
        }
    }
}
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
九路 九路
4年前
Java实现排序算法
//冒泡排序publicstaticvoidbubbleSort(intdata){intndata.length;for(inti0;i<n;i){for(intj0;j<n;j){if(
Wesley13 Wesley13
3年前
Java比较器
前言本篇文章主要介绍的是Java比较器的实现与测试。1.java.lang.Comparable排序接口定义:Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays
Stella981 Stella981
3年前
List自定义对象的排序,根据对象的某一列进行排序
  在工作中,经常需要对List对象集合进行排序操作,下面总结下搞个通用排序对象,原理是使用JAVA的    Comparator  接口实现排序  不多说直接上“干货”1、存在实体类:1@Data2@AllArgsConstructor3@NoArgsConstructo
Wesley13 Wesley13
3年前
mysql 数据库group by 按排序取值
mysql数据库groupby按排序取值 mysql5.7以后,groupby想要按照排序的顺序来取值,在子结果集中要有union,groupby等操作,不然按照id默认排序来取值示例:数据库:score表id user\_id num1 100     952 100     963
Stella981 Stella981
3年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Wesley13 Wesley13
3年前
MySql 相关函数
SELECTGROUP\_CONCAT(column\_name)FROMtable\_namegroupbytable\_name,table\_name2...FIELD()函数自定义排序select\fromuserwheretypein(1,2,3)orderbyFIELD(column,str1,st
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。