选择法数组排序参考(Java)

package com.swift;

public class Xuanze {

    public static void main(String[] args) {
        int[] arr= {28,2,38,1,390,17,10,9,323};
        for(int i=0;i<arr.length;i++) {
            for(int j=i+1;j<arr.length;j++) {
                if(arr[i]>arr[j]) {
                    int temp;
                    temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }
        }
        for(int i=0;i<arr.length;i++) {
            System.out.println(arr[i]);
        }
    }

}

 c++代码:

//思路:用一个数组元素和所有其他的元素PK,谁小谁放第一个

#include <iostream>
using namespace std;

int main(){
    //声明一维数组?整型的一维数组,就是数组中所有的元素都是int 
    int arr[10]={23,234,3,1,19,21,231,88,90,11};

    for(int i=0;i<10;i++){
        cout<<"一维数组的第 "<<i<<" 个值是 "<<arr[i]<<endl;
    }

    //请你给刚才的数组的进行排序,要求从小到大输出 (选择法) 
//    for(int i=0;i<10-1;i++){
//        for(int j=i+1;i<10;j++){
//            if(array[i]>array[j]){
//                int temp;
//                temp=array[i];
//                array[i]=array[j];
//                array[j]=temp;
//            }
//        }
//    }
        for(int i=0;i<10-1;i++) {
            for(int j=i+1;j<10;j++) {
                if(arr[i]>arr[j]) {
                    int temp;
                    temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }
        }
    //排序后再遍历字符一下数组
    for(int i=0;i<10;i++){
        cout<<"遍历后一维数组的第 "<<i<<" 个值是 "<<arr[i]<<endl;
    }
    return 0;
}

第二个for开始写成i<10了,出现了内存不能读错误,j无限变大,dev编译器没有有效提示,不好

posted @ 2017-11-11 21:25  Advancing-Swift  阅读(336)  评论(0编辑  收藏  举报