Java中选择排序,冒泡排序等排序方法示例

直接上代码了,文字懒癌末期

/**
 * 
 */
package array;
 
import java.util.Arrays;
 
/**
 * @author lizhongfeng_李忠峰
 * @fileinfo Test array ArrayDemoSort.java
 * @time 2015年9月12日
 */
public class ArrayDemoSort {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr = { 34, 19, 11, 109, 3, 50 };
		printArray(arr);
		// selectSort(arr); //选择排序
		// bubbleSort(arr); //冒泡排序
		// Arrays.sort(arr); //内置方法排序
		fastSort(arr); // 快速排序
		printArray(arr); // 输出方法
	}
 
	// 挨个比对,选择排序,最原始的方法
	public static void selectSort(int[] arr) {
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = i + 1; j < arr.length; j++) {
				if (arr[i] > arr[j]) {
					int temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}
		}
	}
 
	// 冒泡排序
	public static void bubbleSort(int[] arr) {
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = 0; j < arr.length - 1 - i; j++) {
				if (arr[j] > arr[j + 1]) {
					int temp = arr[j + 1];
					arr[j + 1] = arr[j];
					arr[j] = temp;
				}
			}
		}
	}
 
	// 效率高的快速排序,每一大轮只置换一次 ,每次小圈记录最小的角标,每次小轮结束后得到最小的数的角标放在最后面
	public static void fastSort(int[] arr) {
		for (int i = 0; i < arr.length - 1; i++) {
			int num = arr[i];
			int index = i;
			for (int j = i + 1; j < arr.length; j++) {
				if (num > arr[j]) {
					num = arr[j];
					index = j;
				}
			}
			if (index != i) {
				int temp = arr[i];
				arr[i] = arr[index];
				arr[index] = temp;
			}
		}
	}
 
	public static void printArray(int[] arr) {
		System.out.print("[");
		for (int i = 0; i < arr.length; i++) {
			if (i != arr.length - 1) {
				System.out.print(arr[i] + ",");
			} else {
				System.out.println(arr[i] + "]");
			}
 
		}
	}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

BZOJ2783: [JLOI2012]树(树上前缀和+set)

Description 数列 提交文件:sequence.pas/c/cpp 输入文件:sequence.in 输出文件:sequence.out 问题描述:...

29840
来自专栏图形学与OpenGL

实验4 类初步

 注:本次实验有可能会安排在校内http://acm.hpu.edu.cn/contest.php进行。

10220
来自专栏calmound

uva Andy's First Dictionary

题目很简单,数组开大就好,5000但加上重复就不够了10000都小,sort排序前闭合后开,对二维字符窜排序用结构体,所以只有一组的时候只是本身但是不会出现RE...

35540
来自专栏数据结构与算法

LOJ#6282. 数列分块入门 6

内存限制:256 MiB时间限制:500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计讨论测试数据 题目描述 给出...

27570
来自专栏章鱼的慢慢技术路

排序算法的实现与比较

18280
来自专栏西枫里博客

Python学习笔记三(常用运算符)

2017年年终确定的从2018年开始学习一门新的语言。随着机器学习人工智能的日渐深入,是时候有必要掌握以下Python了。博客今天更新第三篇学习记录,关于Pyt...

11020
来自专栏田云专栏

virtualdom diff算法实现分析

这两个月接触下vue ,花了两天时间了解了下vue的virtualdom实现,记录下学习心得。

71950
来自专栏测试开发架构之路

C/C++常用头文件及函数汇总

C/C++头文件一览 C #include <assert.h>    //设定插入点 #include <ctype.h>     //字符处理 #inclu...

59050
来自专栏数据结构与算法

BZOJ4245: [ONTAK2015]OR-XOR(前缀和)

因为最终答案是xor之后or,所以分开之后之后这样位上1的数量是一定是偶数,否则直接加到答案里面

8210
来自专栏菩提树下的杨过

python高级特性:切片/迭代/列表生成式/生成器

20730

扫码关注云+社区

领取腾讯云代金券