why?一个循环只能找出数组中最大或最小的值
package demo;
public class TestClass {
@SuppressWarnings("resource")
public static void main(String[] args) {
int arr[]={50,9,8,45,35};
System.out.println("从小到大排列:");
for(int i=0;i<arr.length-1;i++){
if (arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
for(int i=0;i<arr.length-1;i++){
System.out.print(arr[i]+",");
}
System.out.print(arr[arr.length -1]);
}
}
冒泡排序:那么多个循环即可按大到小(或从小到大)进行排序
package demo;
public class TestClass {
@SuppressWarnings("resource")
public static void main(String[] args) {
int arr[]={50,9,8,45,35};
System.out.println("从小到大排列:");
for(int i=0;i<arr.length-1;i++){
if (arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
for(int i=0;i<arr.length-1;i++){
if (arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
for(int i=0;i<arr.length-1;i++){
if (arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
for(int i=0;i<arr.length-1;i++){
if (arr[i]>arr[i+1]){
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
for(int i=0;i<arr.length-1;i++){
System.out.print(arr[i]+",");
}
System.out.print(arr[arr.length -1]);
}
}
外嵌一个循环就可以实现
package demo;
public class TestClass {
@SuppressWarnings("resource")
public static void main(String[] args) {
int arr[]={50,9,8,45,35};
System.out.println("从小到大排列:");
//冒泡排序
// for(int j=0;j<arr.length-1;j++){
// for(int i=0;i<arr.length-1;i++){
// if (arr[i]>arr[i+1]){
// int temp=arr[i];
// arr[i]=arr[i+1];
// arr[i+1]=temp;
// }
// }
// }
//选择排序
for(int j=0;j<arr.length-1;j++){
for(int i=j+1;i<arr.length;i++){
if(arr[i]<arr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for(int i=0;i<arr.length-1;i++){
System.out.print(arr[i]+",");
}
System.out.print(arr[arr.length -1]);
}
}
冒泡排序和选择排序
最新推荐文章于 2017-12-06 09:53:38 发布