码迷,mamicode.com
首页 > 编程语言 > 详细

几种排序的算法

时间:2015-07-07 16:34:15      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

最近闲来无事,就看看算法什么的。首先接触的就是那个排序。冒泡排序估计每个人都熟的不行了吧。我自己有研究了以下两个

快速排序

public static int [] fastSort(int [] sortArr,int low,int high){
int i,j,key;

if(low<high){//这个条件用来结束递归
  i=low;
  j=high;
  key=sortArr[i];
  while(i<j){
  while(i<j&&sortArr[j]>key){
    j--;//从右向左找一个小于基准的数
  }
  if(i<j){
    sortArr[i]=sortArr[j];
    i++;
  }
  while(i<j&&sortArr[i]<key){
    i++;//从左向右找一个大于基准的数
  }
  if(i<j){
    sortArr[j]=sortArr[i];
    j--;
  }
}
sortArr[i]=key;
//递归
fastSort(sortArr,low,i-1);
fastSort(sortArr,i+1,high);
}
return sortArr;
}

 

下面还有选择排序法

public static int [] selectSort(int [] arrNum){
  int i,j,k,temp;
  for(i=0;i<arrNum.length;i++){
    k=i; //保存i的值,用k来循环排序
    for(j=i+1;j<arrNum.length;j++){//将第i个元素后面的元素与第i个元素进行比较
      if(arrNum[j]<arrNum[k]){//如果第k=i个元素后面的元素小于i号元素,交换两个元素的标号这样就让最小元素放到最前面
        k=j; //交换标号
        temp=arrNum[k]; //循环借宿后,交换两标号
        arrNum[k]=arrNum[i];
        arrNum[i]=temp;
      }
    }
  }

  return arrNum;
}

 

几种排序的算法

标签:

原文地址:http://www.cnblogs.com/wangxiangstudy/p/4626928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!