面试---算法排序(4)(选择排序)
来源:互联网 发布:卡盟刷q币软件 编辑:程序博客网 时间:2024/06/06 17:43
选择排序
流程:
①首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换
②接着从剩下的n-1个数据中选择次小的1个数据,将其和第2个位置的数据交换
③然后不断重复上述过程
代码展示:
package third;import java.util.ArrayList;public class xz {public static void xz(int a[]){ for(int i=0;i<a.length-1;i++){ int index=i; for(int j=i+1;j<a.length;j++){ if(a[j]<a[index]){ index=j; } } if(index!=i){ int temp=a[index]; a[index]=a[i]; a[i]=temp; } }}public static void main(String[] args) { int [] shuzu=new int [10]; for(int i=0;i<shuzu.length;i++){ shuzu[i]=(int)(100+Math.random()*(100+1)); } System.out.print("排序前的数组为:\n"); for (int i=0;i<shuzu.length;i++){ System.out.print(" "+shuzu[i]); } System.out.print("\n"); xz(shuzu); System.out.println("排序后的数组为:"); for(int i=0;i<shuzu.length;i++){ System.out.print(" "+shuzu[i]); } System.out.print("\n");}}
算法分析:
平均时间复杂度:O(n^2)
空间复杂度:O(1) (用于交换和记录索引)
稳定性:不稳定
最差情形::O(n^2)
阅读全文
0 0
- 面试---算法排序(4)(选择排序)
- 排序:选择排序(算法)
- 选择排序(排序算法--比较排序)
- 选择算法(选择排序)
- 算法分析-选择排序(直接选择排序 & 堆排序)
- 算法-排序-选择排序(直接选择和堆排序)
- 【排序算法】 选择排序 selection sort(选择类排序)
- 简单排序算法:简单选择排序(选择排序)
- 基础排序算法(冒泡排序、选择排序、插入排序)
- 排序算法一(冒泡排序、选择排序、插入排序)
- 排序算法(冒泡排序、选择排序、插入排序)
- 基本排序算法(冒泡排序,选择排序,插入排序)
- 初级排序算法(选择排序、插入排序、希尔排序)
- 五、排序算法(选择排序、插入排序、希尔排序)
- 排序算法一(冒泡排序、选择排序、插入排序)
- 经典排序算法3(选择排序)
- 常用排序算法(2)-选择排序
- 排序算法(二):直接选择排序
- DIV里面的图片水平与垂直居中的方法
- hiho #1545 : 小Hi和小Ho的对弈游戏(树上博弈)
- bzoj3555 [Ctsc2014]企鹅QQ
- 安卓layout分包
- sqoop将Mysql数据传入Hive中
- 面试---算法排序(4)(选择排序)
- Android -- 进程和线程
- numpy学习笔记
- 解决mysql插入数据时出现Incorrect string value: '\xF0\x9F...' for column 'name' at row 1的异常 这个问题,原因是UTF-8编码有可
- TCP连接的状态详解以及故障排查
- 关于java连接mysql出现中文乱码的问题
- QMenu 设置菜单图标 & 生成菜单树
- 汽水瓶
- Java实现-逆波兰表达式求值