五十道编程小题目 --- 28 八大排序算法 java 之 03简单选择排序

44 篇文章 0 订阅
18 篇文章 0 订阅



3. 选择排序—简单选择排序(Simple Selection Sort)

基本思想:

在要排序的一组数中,选出最小(或者最大)的个数,用第1个位置的数与剩下的n-1个数进行比较,然后,第2个位置的数与剩下的n-2个数进行比较,以此类推。

简单选择排序的示例:

 



算法实现:

[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. import java.util.Random;  
  2.   
  3. public class SimpleSelectionSort {  
  4.   
  5.     //简单选择排序  
  6.     public static int[] ssSort(int[] arr){  
  7.           
  8.         for(int i=0; i<arr.length-1; i++){  
  9.             for(int j=i+1; j<arr.length; j++){  
  10.                 if(arr[i] > arr[j]){  
  11.                     int tmp = arr[i];  
  12.                     arr[i] = arr[j];  
  13.                     arr[j] = tmp;  
  14.                 }  
  15.             }  
  16.         }  
  17.           
  18.         return arr;  
  19.           
  20.     }  
  21.       
  22.     // 打印数组  
  23.     public static void print(int[] arr) {  
  24.         for (int i = 0; i < arr.length; i++) {  
  25.             System.out.print(arr[i] + " ");  
  26.         }  
  27.         System.out.println();  
  28.     }  
  29.   
  30.     public static void main(String[] args) {  
  31.           
  32.         System.out.println("任意数组测试:");  
  33.         Random r = new Random();  
  34.         int[] testArr = new int[20];  
  35.         for (int i = 0; i < 20; i++) {  
  36.             testArr[i] = r.nextInt(100);  
  37.         }  
  38.           
  39.         System.out.println("排序前  : ");  
  40.         print(testArr);  
  41.         System.out.println("排序后  : ");  
  42.         print(ssSort(testArr));  
  43.           
  44.     }  
  45.       
  46.       
  47. }  
输出结果:

[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. 任意数组测试:  
  2. 排序前  :   
  3. 27 21 8 56 28 19 40 72 80 84 85 31 99 25 11 62 8 67 60 94   
  4. 排序后  :   
  5. 8 8 11 19 21 25 27 28 31 40 56 60 62 67 72 80 84 85 94 99   




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值