首页 > 试题广场 >

用java实现选择排序算法

[问答题]

用java实现选择排序算法

public class SelectionSort {
    
    public static void seletionSort(int nums[]){
        int size = nums.length;
        
        for (int i = 0; i < size-1; i++) {
            int minIndex = i;
            for (int j = i+1; j < size; j++) {
                if(nums[j] < nums[minIndex]){
                    minIndex = j;
                }
            }
            if(minIndex != i){
                int temp = nums[i];
                nums[i] = nums[minIndex];
                nums[minIndex] = temp;
            }
        }
        for (int i = 0; i < size; i++) {
            System.out.print(nums[i]+" ");
        }
    }
    
    public static void main(String[] args) {
        int nums[] = {1,3,5,7,4,2,9,8};
        seletionSort(nums);
    }
}
发表于 2017-09-16 18:47:39 回复(0)
public int[] selectSort(int[] arr){
    int tem=0;
    for(int i=0;i<arr.length;i++){
        for(int j=i+1;j<arr.length;j++){
            if(arr[i]>arr[j]){
                tem=arr[j];
                arr[j]=arr[i];
                arr[i]=tem;
            }
        }
    }
}
发表于 2017-10-15 14:37:15 回复(0)
public static void main(String[] args) {
        int[] arr = {12, 65, 1, 0, 58, 46, 21};
        int[] sort = pickSort(arr);
        for (int i = 0; i < sort.length; i++) {
            System.out.print(arr[i] + "\t");
        }
    }
    private static int[] pickSort(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[i] > arr[j]) {
                    int temp=arr[i];
                    arr[i] = arr[j];
                    arr[j]=temp;
                }
            }
        }
        return arr;
    }
结果:0    1    12    21    46    58    65    
发表于 2019-09-08 16:33:11 回复(0)
==&amp;gt;直接插入排序&amp;lt;== 将元素插入已经排好序的数组中。 先假定第一个元素为已经排好序的数组, 如果要插入的元素与前一个元素比, 若大,则排在前一个元素后面; 若小,则插入前一个元素前面。 然后再跟前一个比,以此类推。 public static void Sort(int[] a){ //(降序排列) for (int i=1;i&amp;lt;a.length;i++){ int k; int x = a[i]; for(k=i;k&amp;gt;0 &amp;amp;&amp;amp; x&amp;lt; a[k-1];k--){ a[k] = a[k-1]; } a[k] = x; } }
编辑于 2017-12-09 23:59:59 回复(0)

import java.util.Arrays;


public class 选择排序 {


    public static void main(String[] args) {

        int[] is = new int[] {1,4,-1,9,100,34,23};

        for (int i = 0; i < is.length; i++) {

            int min = is[i];

            int indexMin = i;

            for(int j = i+1; j < is.length; j++) {

                if(min > is[j]) {

                    min = is[j];

                    indexMin = j;

                }

            }

            int temp = is[i];

            is[i] = min;

            is[indexMin] = temp;

        }

        String string = Arrays.toString(is);

        System.out.println(string);

    }

}


发表于 2017-10-08 22:24:25 回复(0)
hh
发表于 2017-08-31 11:38:33 回复(0)
手机表示很无奈¬_¬`
发表于 2017-08-16 23:06:01 回复(0)
public class Main{

      public static void main([] args){
      Scanner sc = new Scanner(System.in);
      int n = sc.nextInt();
      int []num;
      for(int i = 0; i < n; i++){
      num[i] = sc.nextInt();
}
      int temp = 0;
      for(int i = 0; i < n; i++){
      temp = num[i];
      if(temp > num[i+1]){
      num[i] = num[i+1];
      num[i+1] = temp[i]; 
}else{
      temp = num[i+1];
}
       for(int i = 0;i < n;i++){
       System.out.println(num[n]+" ");
}
}

}
}

发表于 2017-08-10 20:46:36 回复(0)
//简单选择排序算法 public void selectSort(int[] a, int len) { for ( int i = 0; i < a.length; i++ ) { //标记当前元素下标  int index = i;  //在其后找到最小元素的下标  for ( int j = i; j < a.length; j++ ) if(a[index] > a[j])
            index = j;  //交换两个元素  if( index != i ) { int t = a[i];  a[i] = a[index];  a[index] = t;  }
   }
}
发表于 2017-08-09 20:45:51 回复(0)
public static void
发表于 2017-08-06 18:19:16 回复(0)
public void chooseSort(){
    int[] arr = {2,3,1,6,4,8,5};
    int param = arr[0];
    int index = 0;
   for(int i = 0;i<arr.length;i++){
        for(int j = i;j<arr.length;j++){
            if(arr[j] < param){
                param = arr[j];
                 index = j;    }
        }
        arr[index] = arr[i];
        arr[i] = param;
    }
}

发表于 2017-08-05 17:02:21 回复(0)
总要给点送分题吧啊哈哈
发表于 2017-08-04 22:53:40 回复(0)
这太简单了吧
发表于 2017-08-04 13:40:50 回复(0)
public static void selection_sort(int[] arr) { int i, j, min, temp, len = arr.length; for (i = 0; i < len - 1; i++) { min = i; for (j = i + 1; j < len; j++) if (arr[min] > arr[j]){ min = j;} temp = arr[min]; arr[min] = arr[i]; arr[i] = temp; } }

发表于 2017-08-03 13:09:26 回复(0)
publicstaticvoidSelectionSort(intnumbers){
    intn = numbers.length;
    for(inti=0;i<n;i++){
         intk = i;
        //找出最小值下标
         for(intj=i+1;j<n;j++){         
             if(numbers[j]<numbers[k]){
                k=j;  
              }
        }
       //将最小值放到排序末尾
        if(k>i){
         inttemp = numbers[i] ;
         numbers[i]=numebrs[j];
        numbers[j]=temp;
       }
   }
}
发表于 2017-08-03 09:52:12 回复(0)
private void selectSort(int[] data) {
	
          int = minValueIndex;
          int = temp;
          for(inti = 0; i < data.length-1; i++) {
                   minValueIndex = i;
                   for(intindex = i+1; index < data.length-1; index++) {
                       if(data[index] < data[minValueIndex]) {
                           minValueIndex = i;
                       }
                   }
                    
                   if(minValueIndex != i) {
                      temp = data[minValueIndex];
                      data[minValueIndex] = data[i];
                      data[i]   = temp;
                   }
         }       
}

发表于 2017-08-02 17:31:45 回复(0)
publicclassSelectionSort {
    publicstaticvoidselectionSort(int[] a) {
        intn = a.length;
        for(inti =0; i < n; i++) {
            intk = i;
            // 找出最小值的小标
            for(intj = i +1; j < n; j++) {
                if(a[j] < a[k]) {
                    k = j;
                }
            }
            // 将最小值放到排序序列末尾
            if(k > i) {
                inttmp = a[i];
                a[i] = a[k];
                a[k] = tmp;
            }
        }
    }
    publicstaticvoidmain(String[] args) {
        int[] b = {49,38,65,97,76,13,27,50};
        selectionSort(b);
        for(inti : b)
            System.out.print(i +" ");
    }
}
发表于 2017-08-01 15:54:47 回复(0)