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. AIDL:Binder invocation to an incorrect interface

    Android进程之间通信异常:主要原因是客户端的aidl文件和与远程调用的Service的aidl文件包名不同 处理方式一般就是在客户端要一个与远程暴露出来的接口包名要一致  服务端: 客户端:

  2. Java程序员的10道XML面试题

    包括web开发人员的Java面试在内的各种面试中,XML面试题在各种编程工作的面试中很常见.XML是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准.XML面试问题包括用于转换XML文件的X ...

  3. Oracle-PLSQL Developer使用笔记

    1.新建菜单 command window ---->命令行,执行sql语句 sql window ---->执行sql语句,可导出CSV,TSV,HTML,XML等类型文件 report ...

  4. CF 319B Psychos in a Line 【单调队列】

    维护一个单调下降的队列. 对于每一个人,只需要找到在他前面且离他最近的可以杀掉他的人即可. #include <cstdio> #include <vector> #inclu ...

  5. 理解shared_ptr<T>

    1.shared_ptr<T>解决什么问题? auto_ptr有个局限,拥有权转移.这往往不符合我们的需求,有时候我们期望,多个资源管理对象可以共享一个资源,当引用计数为0的时候,执行de ...

  6. windows 2003 远程登录时如何修改管理员密码

    今天买的vps,需要修改密码.但是自己不会,看网上好多人都说是,按ctrl+alt+del .但是我试过之后发现不对,后来又找到说是使用ctrl+alt+end  更改密码就可以了. 千万不要通过那个 ...

  7. Codeforces Round #322 (Div. 2) C. Developing Skills 优先队列

    C. Developing Skills Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/581/p ...

  8. android自动化测试中hierarchyviewer和uiautomatorviewer获取控件信息的方式比对

    http://blog.csdn.net/itfootball/article/details/21777835 http://blog.csdn.net/chenbang110/article/de ...

  9. Andropid自己定义组件-坐标具体解释

    在做一个view背景特效的时候被坐标的各个获取方法搞晕了,几篇抄来抄去的博客也没弄非常清楚. 如今把整个总结一下. 事实上仅仅要把以下这张图看明确就没问题了. watermark/2/text/aHR ...

  10. 你不知道的 Javascript

    作用域 词法作用域:编译阶段确定(欺骗词法作用域 eval with) function foo(str){ "use strict" eval(str) console.log( ...