Java 简单算法--排序
1. 冒泡排序
package cn.magicdu.algorithm;
public class BubbleSort {
public static void main(String[] args) {
int[] arr = { 5, 7, 8, 4, 3, 9, 7, 6 };
bubbleSort(arr);
}
/**
* 冒泡排序
* @param arr
*/
private static void bubbleSort(int[] arr) {
int temp=0;
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
bubblePrint(arr);
}
/**
* 打印数组
* @param arr
*/
private static void bubblePrint(int[] arr) {
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
2.插入排序
package cn.magicdu.algorithm;
public class InsertSort {
public static void main(String[] args) {
int []arr={3,4,2,3,57,8,34,15};
insertSort(arr);
}
/**
* 插入排序
* @param arr
*/
private static void insertSort(int[] arr) {
for(int i=0;i<arr.length;i++){
int temp=arr[i];
int j;
for(j=i;j>0;j--){
if(arr[j-1]>temp){
arr[j]=arr[j-1];
}else{
break;
}
}
arr[j]=temp;
}
insertPrint(arr);
}
/**
* 打印数组
* @param arr
*/
private static void insertPrint(int[] arr) {
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
3.快速排序
package cn.magicdu.algorithm;
public class QuickSort {
public static void main(String[] args) {
int[] arr = { 1, 4, 6, 2, 3, 4, 7, 8, 9, 5, 65 };
print(arr);
quickSort(arr, 0, arr.length - 1);
print(arr);
}
/**
* 快速排序
* @param arr
* @param low
* @param high
*/
private static void quickSort(int[] arr, int low, int high) {
if(low>=high){
return;
}
if((high-low)==1){
if(arr[0]>arr[1])
swap(arr,0,1);
return;
}
int pivot=arr[low];
int left=low+1;
int right=high;
while(left<right){
while(left<right&&left<=high){
if(arr[left]>pivot)
break;
left++;
}
while(left<=right&&right>low){
if(arr[right]<=pivot)
break;
right--;
}
if(left<right){
swap(arr, right, left);
}
}
swap(arr, low, right);
quickSort(arr, low, right);
quickSort(arr, right+1, high);
}
/**
* 交换数字
* @param arr
* @param i
* @param j
*/
private static void swap(int[] arr, int i, int j) {
int temp;
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
/**
* 打印数组
* @param arr
*/
private static void print(int [] arr){
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+",");
}
System.out.println();
}
}
Java 简单算法--排序的更多相关文章
- JAVA简单选择排序算法原理及实现
简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...
- Java简单算法--出圈问题
package cn.magicdu.algorithm; import java.util.LinkedList; import java.util.List; /** * 出圈问题,数到某个数字的 ...
- Java 简单算法--打印回文数字
package cn.magicdu.algorithm; public class CircleNumber { public static void main(String[] args) { f ...
- Java 简单算法--打印乘法口诀(只使用一次循环)
package cn.magicdu.algorithm; /** * 九九乘法口诀表 * * @author xiaoduc * */ public class NineNineMulitTable ...
- Java简单算法--求100以内素数
package cn.magicdu.algorithm; /** * 打印素数 * * @author xiaoduc * */ public class Prim { public static ...
- 排序系列 之 简单选择排序及其改进算法 —— Java实现
简单选择排序算法: 基本思想: 在待排序数据中,选出最小的一个数与第一个位置的数交换:然后在剩下的数中选出最小的数与第二个数交换:依次类推,直至循环到只剩下两个数进行比较为止. 实例: 0.初始状态 ...
- Java排序算法(二):简单选择排序
[基本思想] 在要排序的一组数中.选出最小的一个数与第一个位置的数交换:然后在剩下的数中再找出最小的与第二个位置的数交换,如此循环至倒数第二个数和最后一个数比較为止. 算法关键:找到最小的那个数.并用 ...
- 常见排序算法总结:插入排序,希尔排序,冒泡排序,快速排序,简单选择排序以及java实现
今天来总结一下常用的内部排序算法.内部排序算法们需要掌握的知识点大概有:算法的原理,算法的编码实现,算法的时空复杂度的计算和记忆,何时出现最差时间复杂度,以及是否稳定,何时不稳定. 首先来总结下常用内 ...
- java实现几种简单的排序算法
public class SimpleAri { public static void main(String[] args) { int[] t = {11, 21, 22, 1, 6, 10, 3 ...
随机推荐
- berserkJS(大名:狂暴JS / 昵称:疯子JS)
极分享:高质分享+专业互助=没有难做的软件+没有不得已的加班 http://www.finalshares.com/read-6763?f=g-20
- Android权威编程指南读书笔记(1-2章)
第一章 Android应用初体验 1.4用户界面设计 <?xml version="1.0" encoding="utf-8"?> ADT21开发版 ...
- [C语言 - 14] 进制
进制 二进制 int number = 0B1010; 没有二进制的输出格式 八进制 int number2 = 07613; printf("number2 = %o\ ...
- 软交换和IMS是什么关系
软交换是一种功能实体,为下一代网络NGN提供具有实时性要求的业务的呼叫控制和连接控制功能,是下一代网络呼叫与控制的核心. 简单地看,软交换是实现传统程控交换机的"呼叫控制"功能的实 ...
- putty 连接ubuntu
1.安装ssh sudo apt-get install openssh-server 2.查看ssh服务是否启动 sudo ps -e |grep ssh 3.如果没有启动,输入" ...
- 【Stage3D学习笔记续】真正的3D世界(六):空间大战
这就是书上的最终效果了,一个完整的空间大战游戏: 点击查看源码 这里并没有太多的新知识,所涉及的东西更多的是游戏开发方面的优化和技巧,下面我们大家一起来看看: 飞船: 类似粒子效果中的粒子创建方法,我 ...
- 【C++编程规范】编程需要避免的常见错误
前言 C++有不少陷阱或者容易失误的地方,稍不注意就会导致程序bug. 正文 1.无符号数和有符号数比较 #define只是简单的文本替换,如果替换的是简单数值,默认是int,和unsigned in ...
- Sql Server 带参数的存储过程执行方法
Sql Server 带参数的存储过程执行方法 Visual C# 动态操作 SQL Server 数据库实例教程(4):带参数的存储过程执行方法 上一篇文章介绍了带参数的SQL语句执行方法和不带参数 ...
- Apache Options Indexes FollowSymLinks具体解释
禁止显示Apache文件夹列表-Indexes FollowSymLinks 怎样改动文件夹的配置以禁止显示 Apache 文件夹列表. 缺省情况下假设你在浏览器输入地址: http://loc ...
- C#-将控件动态添加到选项卡页tablepage
tabPage1.Controls.Add(new Button()); 实例: Button cp = new Button(); cp.text="test";cp.Click ...