今日面试被问到排序问题,发现自己的不足,特来查漏补缺:

首先是各大排序算法的总结表

排序算法大合集 
排序算法 平均时间复杂度 最好情况 最坏情况 空间复杂度 稳定性
冒泡排序 Ο(n2) Ο(n) Ο(n2) Ο(1)  稳定
选择排序 Ο(n2) Ο(n2) Ο(n2) Ο(1)  不稳定
插入排序 Ο(n2) Ο(n) Ο(n2) Ο(1)  稳定
希尔排序 Ο(nlogn) Ο(nlog2n) Ο(nlog2n) Ο(1)  不稳定
归并排序 Ο(nlogn) Ο(nlogn) Ο(nlogn) Ο(n) 稳定 
快速排序 Ο(nlogn) Ο(nlogn) Ο(n2) Ο(logn) 不稳定 
堆排序 Ο(nlogn) Ο(nlogn) Ο(nlogn) Ο(1) 不稳定 
计数排序 Ο(n+k) Ο(n+k) Ο(n+k) Ο(k) 稳定 
桶排序 Ο(n+k) Ο(n+k) Ο(n2) Ο(n+k) 稳定 
基数排序 Ο(n*k) Ο(n*k) Ο(n*k) Ο(n+k) 稳定 

今天回忆了冒泡排序与选择排序两种:

冒泡排序:比较两个相邻元素,将值大的元素交换至右端。

依次比较相邻的两个数,将小数放在左端,大数放在右端。第一趟结束后,最后一个数是最大的,第二趟比较时最后一个数不参加比较。

选择排序:每一趟在待排序的记录中找出最小元素,放在已经排好序的序列最后,直到所有记录排序完成。

第一趟排序,将arr[1]~arr[n]中最小的数与arr[1]交换;第2趟,将arr[2]~arr[n]间最小的数与arr[2]交换,依次类推。

二者区别

1)冒泡排序是比较相邻两个位置的数,而选择排序是按照顺序比较,找到最大值或者最小值;

2)冒泡排序每一轮比较后,位置不对都需要换位置,而选择排序每一轮比较只换位一次;

3)冒泡排序是通过数去找位置,选择排序是通过位置来找数。

冒泡排序的优点比较简单、空间复杂度低,稳定;

缺点:时间复杂度较高,效率慢;

选择排序的优点:一轮比较只需要换一次位置

缺点:效率慢,不稳定,如5,3,5,2,9,第一次互换位置后,两个5的相对位置前后顺序就破坏了。

代码:待补充,已编辑进eclipse中。

首先用自己最近实战的java语言来进行一个排序问题编程:

问题:对输入的n个数排序并输出

输入:两行,第一行为n;第二行为需要进行排序的n个数

输出:一行,即排序后的数

 import java.util.Scanner;
import java.util.Arrays;
public class Main{
public static void main(String [] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
int n = in.nextInt();
int[] arr = new int[n];
for(int i = 0;i<n;i++){
arr[i] = in.nextInt();
}
Arrays.sort(arr);
for(int i = 0;i<n;i++)
System.out.print(arr[i]+" ");
System.out.println();
}
}
}

排序大集合java的更多相关文章

  1. 十大经典排序算法(java实现、配图解,附源码)

    前言: 本文章主要是讲解我个人在学习Java开发环境的排序算法时做的一些准备,以及个人的心得体会,汇集成本篇文章,作为自己对排序算法理解的总结与笔记. 内容主要是关于十大经典排序算法的简介.原理.动静 ...

  2. PourOver – 快速筛选和排序大的数据集合

    PourOver 是一个用于对大数据集合进行快速过滤的 JavaScript 库.它可以在60fps下运行,允许您构建数据研究应用和档案,即不必等待一个数据库调用来呈现查询结果. PourOver 基 ...

  3. Java 学习笔记 两大集合框架Map和Collection

    两大框架图解 Collection接口 由第一张图,我们可以知道,Collection接口的子接口有三种,分别是List接口,Set接口和Queue接口 List接口 允许有重复的元素,元素按照添加的 ...

  4. Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) JAVA日志的前世今生 .NET MVC采用SignalR更新在线用户数 C#多线程编程系列(五)- 使用任务并行库 C#多线程编程系列(三)- 线程同步 C#多线程编程系列(二)- 线程基础 C#多线程编程系列(一)- 简介

    Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 ...

  5. JAVA大集合数据分批次进行切割处理

    今天遇到一个大集合里面的数据删除问题, 因为是一个大集合,如果同时传递到数据库,那么就会造成数据库压力 所以分批次的进行批量操作 其实 也可以采用多线程来处理或者多批次加多线程来处理都是可以的 下面的 ...

  6. 各种排序算法及其java程序实现

    各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序 冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序 一.冒泡排序(BubbleSort)1. 基本思想 ...

  7. 各大公司java后端开发面试题

    各大公司Java后端开发面试题总结 ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量.采用空间换时间,它用于线程间的数据隔离 ...

  8. 排序算法及其java实现

    各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序 冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序 一.冒泡排序(BubbleSort) 1. 基本思 ...

  9. 干货100+ 最超全的web开发工具和资源大集合

    干货100+ 最超全的web开发工具和资源大集合   作为Web开发者,这是好的时代,也是坏的时代.Web开发技术也在不断变化.虽然很令人兴奋,但是这也意味着Web开发人员需要要积极主动的学习新技术和 ...

随机推荐

  1. HBASE 优化之REGIONSERVER

    HBASE 优化之REGIONSERVER 一,概述 本人在使用优化regionserver的过程有些心得,借此随笔的机会,向大家介绍我的心得,有些是网上拿来的有些是自己在使用过程自己的经验,希望对大 ...

  2. 如何让 KiCad EDA 5.1 不显示铺铜

    如何让 KiCad EDA 5.1 不显示铺铜 在画板最后给 PCB 铺地,铺地结束后检查然后发板出去打板. 板子回来焊接,调试时发现有问题,边调边改线路,打开 KiCad 一看满屏的铜皮,怎么改呀? ...

  3. day02 运算符

                                  运算符2019-04-01 目录 一.算数运算符 + = * / % // ** 二.比较运算 > < == != >= ...

  4. Linux基础入门-目录结构及文件基本操作

    一.Linux的目录结构: Windows是以存储介质为主的,主要以盘符及分区来实现文件的管理,然后之下才是目录.但Linux的磁盘从逻辑上来说是挂载在目录上的,每个目录不仅能使用本地磁盘分区的文件系 ...

  5. 必须学会git和maven

    转自: http://tieba.baidu.com/p/3458400116 很多人应该用过svn cvs之类的代码版本管理工具,git也是其中之一. svn和git最大的几个区别要点,svn必须要 ...

  6. python基础知识6---文件处理

    阅读目录 一 文件操作 二 打开文件的模式 三 操作文件的方法 四 文件内光标移动 五 文件的修改   一 文件操作 一 介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用pytho ...

  7. scrapy爬虫框架学习笔记(一)

    scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...

  8. Apartment 2019

    Apartment 2019 最近在学习3D建模,Apartment 2019是我的个人项目. 初步的想法是,先在网上找公寓建筑的平面图以及室内效果照片,根据这些参考图像来练习建模与渲染. 建模顺序与 ...

  9. SYM File

    Structure  Programme header Section Symbol table Programme header An executable or shared object fil ...

  10. 软件测试:3.Exercise Section 2.3

    软件测试:3.Exercise Section 2.3 /************************************************************ * Finds an ...