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 简单算法--排序的更多相关文章

  1. JAVA简单选择排序算法原理及实现

    简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...

  2. Java简单算法--出圈问题

    package cn.magicdu.algorithm; import java.util.LinkedList; import java.util.List; /** * 出圈问题,数到某个数字的 ...

  3. Java 简单算法--打印回文数字

    package cn.magicdu.algorithm; public class CircleNumber { public static void main(String[] args) { f ...

  4. Java 简单算法--打印乘法口诀(只使用一次循环)

    package cn.magicdu.algorithm; /** * 九九乘法口诀表 * * @author xiaoduc * */ public class NineNineMulitTable ...

  5. Java简单算法--求100以内素数

    package cn.magicdu.algorithm; /** * 打印素数 * * @author xiaoduc * */ public class Prim { public static ...

  6. 排序系列 之 简单选择排序及其改进算法 —— Java实现

    简单选择排序算法: 基本思想: 在待排序数据中,选出最小的一个数与第一个位置的数交换:然后在剩下的数中选出最小的数与第二个数交换:依次类推,直至循环到只剩下两个数进行比较为止. 实例: 0.初始状态 ...

  7. Java排序算法(二):简单选择排序

    [基本思想] 在要排序的一组数中.选出最小的一个数与第一个位置的数交换:然后在剩下的数中再找出最小的与第二个位置的数交换,如此循环至倒数第二个数和最后一个数比較为止. 算法关键:找到最小的那个数.并用 ...

  8. 常见排序算法总结:插入排序,希尔排序,冒泡排序,快速排序,简单选择排序以及java实现

    今天来总结一下常用的内部排序算法.内部排序算法们需要掌握的知识点大概有:算法的原理,算法的编码实现,算法的时空复杂度的计算和记忆,何时出现最差时间复杂度,以及是否稳定,何时不稳定. 首先来总结下常用内 ...

  9. java实现几种简单的排序算法

    public class SimpleAri { public static void main(String[] args) { int[] t = {11, 21, 22, 1, 6, 10, 3 ...

随机推荐

  1. HW6.8

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  2. Keil MDK 无法设置断点【worldsing】

    要解决一个问题就怕不知道怎么搜索,或是别人没有遇到过: 同样碰到Keil MDK Debug调试无法设置断点问题,首先来问百度,GOOGLE,一下是我搜索到的结果:   1.keil 不能设置断点,每 ...

  3. Web 应用的安全性

    Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分.用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统.用户授权 ...

  4. sts中从svn导入maven项目

    1.创建资源库 2.导入项目作为本地项目 3.将子module从本地导入(默认情况下,只会将主pom所在的工程导入)

  5. fastjson把对象转化成json避免$ref

    转自http://blog.csdn.net/wxwzy738/article/details/30244993 DisableCircularReferenceDetect来禁止循环引用检测: JS ...

  6. iOS 键盘框架IQKeyboardManager使用

    框架地址:https://github.com/hackiftekhar/IQKeyboardManager AppDelegate.m文件中   #import <IQKeyboardMana ...

  7. SpringMVC学习 DispatcherServlet (转载)

    3.1.DispatcherServlet作用 DispatcherServlet是前端控制器设计模式的实现,提供spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring Io ...

  8. 教你50招提升ASP.NET性能(十三):精选技巧集合

    (19)A selection of tips 招数19: 精选技巧集合 Including height and width in <img /> tags will allow you ...

  9. 【转】MyEclipse8.5集成Tomcat7时的启动错误:Exception in thread “main” java.lang.NoClassDefFoundError org/apache/commons/logging/LogFactory

    http://www.cnblogs.com/newsouls/p/4021198.html 今天,安装Tomcat7.0.21后,单独用D:\apache-tomcat-7.0.21\bin\sta ...

  10. android code bbs for developer

    http://bbs.aiyingli.com/forum.php http://www.eoeandroid.com/ http://www.javaapk.com/demo http://www. ...