选择排序法对数组进行排序

package selectionSort;

import java.util.Arrays;

public class Exam {
//使用选择排序法对数组进行排序
    public static void main(String[] args) {
        int[] nums= {23,3453,123,54,12,45,145,135,656,146,65};
        SelectionSort(nums);
        System.out.println(Arrays.toString(nums));
    }

    public static void SelectionSort(int[] nums) {
        if(nums==null||nums.length<0) {
            return;
        }

        for(int i=0;i<nums.length-1;i++) {

            int arrayMin=nums[i];
            int arrayMinIndex=i;
            for(int j=i+1;j<nums.length;j++) {
                if(arrayMin>nums[j]) {
                    arrayMin=nums[j];
                    arrayMinIndex=j;
                }
            }
            if(arrayMin!=i) {
                nums[arrayMinIndex]=nums[i];
                nums[i]=arrayMin;
            }
        }

    }
}

原文地址:https://www.cnblogs.com/BatmanY/p/8710781.html

时间: 2024-10-05 05:25:39

选择排序法对数组进行排序的相关文章

使用选择排序法对数组进行排序

int[] array = new int[10]; //生成随机数对象 Random random = new Random(); for (int i = 0; i < array.length; i++) { array[i] = random.nextInt(50); System.out.print(array[i]+" "); } System.out.println("\n排序后:"); int index; for (int i = 1; i 

Java使用选择排序法对数组进行排序

1 package com.yzy.test; 2 3 public class Test { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 int[] array = { 43, 64, 21, 6565, 3424, 22, 6523, 345 }; 10 for (int i = 1; i < array.length; i++) { 11 int index = 0; 12 for (i

Java使用快速排序法对数组进行排序

1 package com.yzy.test; 2 3 public class Test { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 int[] array = { 43, 64, 21, 6565, 3424, 22, 6523, 345 }; 10 ArraySort(array, 0, array.length - 1); 11 for (int i : array) { 12 S

Java使用冒泡排序法对数组进行排序

public class d{ public static void main(String[] args){ int[] array={43,64,21,6565,3424,22,6523,345}; for(int i=1;i<array.length;i++){ for(int j=0;j<array.length-i;j++){ if(array[j]>array[j+1}){ array[j]=array[j]^array[j+1]; array[j+1]=array[j+1]

算法大神之路----排序(选择排序法)

选择排序法,顾名思义,就是把特定的数据选择出来进行排序. 选择排序法有两种方式 在所有的数据中,当由大到小排序,那么就将最大值放到第一个位置 如果由小到大排序,那么就将最小值放到第一个位置 以由小到大排序举例,当排序时候,扫描整个数据,拿第一个依次与其他做比较,如果其他数据比第一个大,或者相等,那么就不交换,如果其他数据比第一个数小,那么就交换二者的位置,扫描结束后,则从第二个数开始,依次扫描. 方法分析 无论是最坏还是最好情况,甚至是平均情况下,都需要对全部数据进行扫描,找到最大或最小值,因此

指针选择排序法,10个整数从小到大排序

//指针方法,选择排序法对10个int按从小到大排列 #include<stdio.h> main() { int n=10,i,b,a[10],*p; int sort(int *q,int n); // scanf("%d",&10); for(p=a;p<a+10;p++)//键盘输入数组元素 scanf("%d",p); p=a;//超重要!!!!!!!!!!不能忘 sort(p,10);//调用函数 for(p=a;p<a+

C语言 数组输出,冒泡排序法,沉底排序法,二维数组输出,输出字母列长度,从随机数组中找重复数

#include <stdio.h> #define sum 3+4//宏定义是原封不动的使用used for test4 #include <time.h>//used for test8~9 #include <stdlib.h>//used for test8~9 void test(){//数组输出 //int a[5]={1,2,3,4,5}; printf("array output,look,please...\n"); int a[1

(八)数组以及排序和查找

JavaSE(八) --数组以及排序和查找 一.数组的定义 三种定义方法: int b[]=new int[5]; Int []b=new int[5]; int[] a=new int[5]; (建议使用这种定义方法) //必须规定数组长度,因为在编译的时候就要分配内存. 我们也可以在定义的时候就初始化数组 Int[] a={1,2,3,3,5}; 这默认了数组a的长度是5. 分配内存详情如下: 开辟一块内存,有5个小块,a指向数组的首地址. int[][] b=new int[5][];  

java常用八大排序法

最近查资料发现java排序挺有意思的,其中包含常见八种具有代表性的排序法:笔者觉得排序的功能重要,但更重要的是排序的思想:所以简单叙述一下常见排序方法名称,并用代码举例. A.插入排序(直接插入排序.希尔排序);B.交换排序(冒泡排序.快速排序);C.选择排序(直接选择排序.堆排序);D.归并排序;E.分配排序(基数排序); 所需辅助空间最多:归并排序;所需辅助空间最少:堆排序;平均速度最快:快速排序; 不稳定:快速排序,希尔排序,堆排序. 代码块: package com.sinolife.m