对一个给定元素的数组进行排序。解决方案
对一个给定元素的数组进行排序。
思路是这样的,先从所有元素中选出最小的数,然后从剩下的元素中选出最小的数,接下去就这样依次排序。直接用for循环实现,不用冒泡排序和Arraysort,要怎么写循环?
------解决方案--------------------
public int min(int[]a,int i){//返回最小值的下标
int temp=a[i];
int begin=i;
for (int j = i+1; j < a.length; j++) {
if(temp>a[j]){
temp=a[j];
begin=j;
}
}
return begin;
}
public void find(int[]a){//排序的方法
int temp;
for (int i = 0; i < a.length; i++) {
int j=min(a, i);
if(i!=j){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
------解决方案--------------------
插入漏了点,补充一下,加多个选择排序
思路是这样的,先从所有元素中选出最小的数,然后从剩下的元素中选出最小的数,接下去就这样依次排序。直接用for循环实现,不用冒泡排序和Arraysort,要怎么写循环?
------解决方案--------------------
public int min(int[]a,int i){//返回最小值的下标
int temp=a[i];
int begin=i;
for (int j = i+1; j < a.length; j++) {
if(temp>a[j]){
temp=a[j];
begin=j;
}
}
return begin;
}
public void find(int[]a){//排序的方法
int temp;
for (int i = 0; i < a.length; i++) {
int j=min(a, i);
if(i!=j){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
------解决方案--------------------
插入漏了点,补充一下,加多个选择排序
- Java code
public static void sort(int[] a) {//插入 for(int i = 1; i < a.length;i++) { int tmp = a[i]; for(int j = i;j>0;j--) { if(tmp<a[j-1]) { a[j] = a[j-1]; a[j-1] = tmp; } else { break; } } } } public static void sort2(int[] a) {//选择 for(int i = 0; i < a.length;i++) { int t = i; for(int j = i+1;j<a.length;j++) { if(a[t]>a[j]) { t = j; } } if(t!=i) { int tmp = a[i]; a[i] = a[t]; a[t] = tmp; } } }