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 ...
随机推荐
- HW6.18
public class Solution { public static void main(String[] args) { double[] array = {6.0, 4.4, 1.9, 2. ...
- bigData Ecosystem Unscramble
主题>>: cloudEra hadoop Ecosystem sim Unscramble; ruiy哥个人理解总结,其实我无非也还是站在那"砖家/叫兽"的肩上瞎扯扯 ...
- IOS应用安全(五):高级Runtime分析和操作
在前一篇文章,我们学习如何安装Cycript在你的苹果设备,hook进程获取其相关属性信息.这一篇文章,我们将介绍高级的runtime分析技术,在应用运行时获取或者修改指定class的信息(方法.实例 ...
- 转载.NET 4.0中的泛型的协变和逆变
先做点准备工作,定义两个类:Animal类和其子类Dog类,一个泛型接口IMyInterface<T>, 他们的定义如下: public class Animal { } public ...
- Android开发中常用的Eclipse快捷键
关闭所有窗口Ctrl + Shift + W 关闭所有已打开的编辑窗口 重命名Alt + Shift + R 文件或变量重命名(先选中文件或变量再同时按下快捷键) 快速引包Ctrl + Shi ...
- selenium 自动化测试面试题及答案
写在开始: 这些问题和答案,都是自己在网上找的,整理的,有任何问题,概不负责.主要感谢博主Ray,http://www.cnblogs.com/tsbc/p/4922368.html 1.seleni ...
- Castle IOC FOR MVC 使用方法
Castle Web.API 使用方法 一.创建 WindsorActivator 继承 IHttpControllerActivator public class WindsorActivator ...
- UIView中触摸事件touchBegin
UIView触摸事件touchBegin 等一系列方法 1)手指按下 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; ...
- SCOM MP中的PowerShell脚本
该脚本可在MP中运行 #param ($file,$threshold) #此处可定义file 和 threshold 参数,该参数可以从脚本外部接收 $threshold = 10 $file = ...
- 实现android activity之间的跳转
android程序一般不会只有一个activity,会碰到activity之间的跳转.以下是使用Intent做应用程序内部的activity做跳转.比如,应用程序第一个activity是: 点击“下一 ...