选择排序_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 选择排序

选择排序

 2014/4/9 21:45:42  exceptionhelp  程序员俱乐部  我要评论(0)
  • 摘要:选择排序,简单的说就是,每次遍历数列,取出最大或最小的值放在已排好序数列的最后。最简单的就是在排序方法内部新建一个和原数组大小一样的空数组,这样每次遍历之后把最大或最小值放在对应的空数组中,代码如下:publicstaticint[]selectSort1(int[]arr){if(arr==null||arr.length==0){returnnull;}int[]newArr=newint[arr.length];intminNum=Integer.MIN_VALUE;for(inti=0
  • 标签:
选择排序,简单的说就是,每次遍历数列,取出最大或最小的值放在已排好序数列的最后。
最简单的就是在排序方法内部新建一个和原数组大小一样的空数组,这样每次遍历之后把最大或最小值放在对应的空数组中,代码如下:
public static int[] selectSort1(int[] arr) {
if (arr == null || arr.length == 0) {
return null;
}
int[] newArr = new int[arr.length];
int minNum = Integer.MIN_VALUE;
for (int i=0; i<arr.length; i++) {
minNum = arr[i];
for (int j=i+1; j<arr.length; j++) {
if (arr[j] < minNum) {
minNum = arr[j];
}
}
newArr[i] = minNum;
}
return newArr;
}
在这里面我们传建了一个新的数组,但是我们可以不可以不创建这个数组?答案是可以不创建,我们可以记录最小值的下标,然后跟每次循环的i进行对换,这样我们就可以在原数组中实现排序,代码如下:
public static void selectSort2(int arr[]) {
if (arr == null || arr.length == 0) {
return;
}
int minIndex = 0;
int t = 0;
for (int i=0; i<arr.length; i++) {
minIndex = i;
for (int j=i+1; j<arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
t = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = t;
}
}
}
更多信息,请访问http://www.exceptionhelp.com
上一篇: 矩阵输出 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名