排序算法
2015-07-25 14:32
561 查看
package test;
public class Test1 {
public static void main(String []args){
int a[]={44,8,99,6,111,2,55,6,0,55,33,189,456,1,0};
// sort(a);
// sort2(a);
// sort3(a);
sort4(a,0,a.length-1);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
//选择排序
private static void sort4(int[] a, int i, int j) {
{
if(j<=i) return;
int m=parttion(a,i,j);
sort4(a,i,m-1);
sort4(a,m+1,j);
}
}
private static int parttion(int[] a, int lo, int hi) {
int i=lo,j=hi+1;
int t=a[lo];
while(true){
while(a[++i]<t) if(i==hi) break;
while(t<a[--j]) if(j==lo) break;
if(i>=j) break;
int h=a[i];
a[i]=a[j];
a[j]=h;
}
int h=a[lo];
a[lo]=a[j];
a[j]=h;
return j;
}
//插入排序
private static void sort3(int[] a) {
int N=a.length;
for(int i=1;i<N;i++){
for(int j=i;j>0&&a[j]<a[j-1];j--){
int t=a[j];
a[j]=a[j-1];
a[j-1]=t;
}
}
ForTest(N,a);
}
// 冒泡排序
private static void sort2(int[] a) {
int N=a.length;
for(int i=0;i<N;i++){
for(int j=0;j<N-i-1;j++){
if(a[j]>a[j+1]){
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(int i=0;i<N;i++){
System.out.println(a[i]);
}
}
// 选择排序
private static void sort(int[] a) {
// TODO Auto-generated method stub
int N=a.length;
for(int i=0;i<N;i++){
int min=i;
for(int j=i+1;j<N;j++){
if(a[j]<a[min]){
min=j;
}
int t=a[i];
a[i]=a[min];
a[min]=t;
}
}
for(int i=0;i<N;i++){
System.out.println(a[i]);
}
}
public static void ForTest(int N,int a[]){
for(int i=0;i<N;i++){
System.out.println(a[i]);
}
}
}
public class Test1 {
public static void main(String []args){
int a[]={44,8,99,6,111,2,55,6,0,55,33,189,456,1,0};
// sort(a);
// sort2(a);
// sort3(a);
sort4(a,0,a.length-1);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
//选择排序
private static void sort4(int[] a, int i, int j) {
{
if(j<=i) return;
int m=parttion(a,i,j);
sort4(a,i,m-1);
sort4(a,m+1,j);
}
}
private static int parttion(int[] a, int lo, int hi) {
int i=lo,j=hi+1;
int t=a[lo];
while(true){
while(a[++i]<t) if(i==hi) break;
while(t<a[--j]) if(j==lo) break;
if(i>=j) break;
int h=a[i];
a[i]=a[j];
a[j]=h;
}
int h=a[lo];
a[lo]=a[j];
a[j]=h;
return j;
}
//插入排序
private static void sort3(int[] a) {
int N=a.length;
for(int i=1;i<N;i++){
for(int j=i;j>0&&a[j]<a[j-1];j--){
int t=a[j];
a[j]=a[j-1];
a[j-1]=t;
}
}
ForTest(N,a);
}
// 冒泡排序
private static void sort2(int[] a) {
int N=a.length;
for(int i=0;i<N;i++){
for(int j=0;j<N-i-1;j++){
if(a[j]>a[j+1]){
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(int i=0;i<N;i++){
System.out.println(a[i]);
}
}
// 选择排序
private static void sort(int[] a) {
// TODO Auto-generated method stub
int N=a.length;
for(int i=0;i<N;i++){
int min=i;
for(int j=i+1;j<N;j++){
if(a[j]<a[min]){
min=j;
}
int t=a[i];
a[i]=a[min];
a[min]=t;
}
}
for(int i=0;i<N;i++){
System.out.println(a[i]);
}
}
public static void ForTest(int N,int a[]){
for(int i=0;i<N;i++){
System.out.println(a[i]);
}
}
}
相关文章推荐
- HDU1565 方格取数(1) 网络流
- poj 2253 Frogger(最小生成树)
- 利用标题标签h1的innerHTML方法在页面上添加文字
- Dubbo--简介
- spring基础
- jQuery(一)
- KMP算法(待优化)--2015年7月25日14:04:25V1.0版
- 某物流集团企业信息化案例介绍
- 使用Eclipse编写Python
- 在ubuntu12.4系统上安装及配置云服务器OwnCloud 实操笔记
- “Thinking in AngularJS” if I have a jQuery background?
- android之对话框
- Knockout 事件传递参数的方法
- hdu 5303 Delicious Apples
- java 用 _id 查找 MongoDB 下的数据
- 三大抽样分布
- 设计模式_门面模式
- leetcode[137]:Single Number II
- 高可用集群技术理论基础知识
- ls命令的简单实现