常见排序算法(java实现)
常见排序算法介绍
冒泡排序
- 代码:
public class BubbleSort {
public static void sort(int[] array) {
int tValue;
for (int i = 0; i < array.length; i++) {
for (int j = i; j < array.length; j++) {
if (array[i] > array[j]) {
tValue = array[i];
array[i] = array[j];
array[j] = tValue;
}
}
}
}
public static void main(String[] args) {
int a[] = { 6, 2, 4, 5, 1, 9, 10, 7 };
sort(a);
for (int v : a) {
System.out.print(v + " ");
}
}
}
输入结果:
1 2 4 5 6 7 9 10
插入排序:
效果图:

代码:
public class InsertSort {
public static void sort(int[] array) {
int tValue;
int j;
for (int i = 0; i < array.length; i++) {
j = i;
tValue = array[i];
while (j > 0 && tValue < array[j - 1]) {
array[j] = array[j - 1];
j--;
}
array[j] = tValue;
}
}
public static void main(String[] args) {
int a[] = { 6, 2, 4, 5, 1, 9, 10, 7 };
sort(a);
for (int v : a) {
System.out.print(v + " ");
}
}
}
输入结果:
1 2 4 5 6 7 9 10
选择排序:
- 代码:
public class SelectSort {
public static void sort(int[] array) {
int index, tValue;
for (int i = 0; i < array.length; i++) {
index = i;
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[index]) {
index = j;
}
}
if (index != i) {
tValue = array[i];
array[i] = array[index];
array[index] = tValue;
}
}
}
public static void main(String[] args) {
int a[] = { 6, 2, 4, 5, 1, 9, 10, 7 };
sort(a);
for (int v : a) {
System.out.print(v + " ");
}
}
}
输入结果:
1 2 4 5 6 7 9 10
高速排序:
- 代码:
public class QuickSort {
public static void quickSort(int[] array, int left, int right) {
int i, j, bValue, tValue;
if (left > right) {
return;
}
i = left;
j = right;
bValue = array[left];
while (i != j) {
while (array[j] >= bValue && i < j) {
j--;
}
while (array[i] <= bValue && i < j) {
i++;
}
if (i < j) {
tValue = array[i];
array[i] = array[j];
array[j] = tValue;
}
}
array[left] = array[i];
array[i] = bValue;
quickSort(array, left, i - 1);
quickSort(array, i + 1, right);
}
public static void main(String[] args) {
int a[] = { 6, 2, 4, 5, 1, 9, 10, 7 };
quickSort(a, 0, a.length - 1);
for (int v : a) {
System.out.print(v + " ");
}
}
}
输入结果:
1 2 4 5 6 7 9 10
參考资料:
常见排序算法(java实现)的更多相关文章
- 常见排序算法 - Java实现
1.冒泡排序 每次比较相邻的两个元素大小,调整顺序.从头到尾执行一轮(i),最大数值的元素就排到最后.每次从头到尾执行一轮,都会排好一个元素(length - i - 1).这就是说一个包含 n 个元 ...
- 常见排序算法JAVA实现
1.冒泡排序,时间复杂度:最好:T(n) = O(n) ,情况:T(n) = O(n2) ,平均:T(n) = O(n2) public int[] bubbleSort(int[] nums) { ...
- 常见排序算法(附java代码)
常见排序算法与java实现 一.选择排序(SelectSort) 基本原理:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换:接着对不包括第一个记录以外的其他 ...
- 常见排序算法总结 -- java实现
常见排序算法总结 -- java实现 排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线性时间 ...
- 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列. 稳定度(稳定性)一个排序算法是稳定的,就是当有两个相等记录的关 ...
- 常见排序算法题(java版)
常见排序算法题(java版) //插入排序: package org.rut.util.algorithm.support; import org.rut.util.algorithm.Sor ...
- Java基础语法(8)-数组中的常见排序算法
title: Java基础语法(8)-数组中的常见排序算法 blog: CSDN data: Java学习路线及视频 1.基本概念 排序: 是计算机程序设计中的一项重要操作,其功能是指一个数据元素集合 ...
- 常见排序算法总结(java版)
一.冒泡排序 1.原理:相邻元素两两比较,大的往后放.第一次完毕,最大值在最大索引处. 即使用相邻的两个元素一次比价,依次将最大的数放到最后. 2.代码: public static void bub ...
- 八大排序算法Java实现
本文对常见的排序算法进行了总结. 常见排序算法如下: 直接插入排序 希尔排序 简单选择排序 堆排序 冒泡排序 快速排序 归并排序 基数排序 它们都属于内部排序,也就是只考虑数据量较小仅需要使用内存的排 ...
随机推荐
- ThinkPHP5.0---删除数据
删除特定记录 public function delete() { // 获取要删除的对象:关键字为16 $Teacher = Teacher::); // 删除对象 $Teacher->del ...
- Android自己定义View画图实现拖影动画
前几天在"Android画图之渐隐动画"一文中通过画线实现了渐隐动画,但里面有个问题,画笔较粗(大于1)时线段之间会有裂隙.我又改进了一下.这次效果好多了. 先看效果吧: 然后我们 ...
- flask的使用(一)
1.程序基本的说明 #-*-encoding=utf--*- 从flask中引入类 from flask import Flask ,render_template import config 初始化 ...
- (嵌入式开发)自己写bootloader之编写第一阶段
最简单的bootloader的编写步骤: 1. 初始化硬件:关看门狗.设置时钟.设置SDRAM.初始化NAND FLASH 2. 如果bootloader比较大,要把它重定位到SDRAM 3. 把内核 ...
- 【Codeforces Round #440 (Div. 2) B】Maximum of Maximums of Minimums
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] k=1的时候就是最小值, k=2的时候,暴力枚举分割点. k=3的时候,最大值肯定能被"独立出来",则直接输出最 ...
- Netty原理和使用
性能主题 Netty原理和使用 Netty是一个高性能 事件驱动的异步的非堵塞的IO(NIO)框架,用于建立TCP等底层的连接,基于Netty可以建立高性能的Http服务器.支持HTTP. WebSo ...
- MM常用的双关语(男士必读)
我们还是当朋友好了 (其实你还是有多馀的利用价值)我想我真的不适合你(我根本就不喜欢你.)天气好冷喔,手都快结冰了 (快牵我的手吧,大木头!)我觉得我需要更多一点的空间 (我不太想看到你啦!)其实你人 ...
- LA 3942 - Remember the Word 字典树+DP
看题传送门:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show ...
- 33、给华美A100刷固件
给HAME A100刷固件 目的: 1. 给HAME A100刷固件 2. 配置上UVC驱动 3. 修改内核自带的UVC驱动,使其支持我们自制的二合一摄像头 4. 移植mjpg-streamer 5. ...
- 18.1 IIC驱动程序(基于3.4.2内核)
驱动使用smbus提供的IIC读写函数可以参考smbus-protocol.txt文档:应用层直接使用IIC读写函数读写IIC设备,应用层读写函数是由i2c-tools这个库提供的(编译的使用和应用程 ...