选择排序
来源:互联网 发布:石家庄企业办公软件 编辑:程序博客网 时间:2024/05/23 14:17
选择排序(Selection sort),它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
相比于冒泡排序,比较次数并没有减少,但是交换次数大大减少,大O表示法为O(N)。
代码如下:
先写个工具类
public class SelectArray { private long[] a; private int nElems; public SelectArray(int max) { a = new long[max]; nElems = 0; } //插入数据 public void insert(long value){ a[nElems] = value; nElems++; } //遍历数组 public void display(){ for (int i=0;i<nElems;i++){ System.out.printf(a[i]+" "); } System.out.printf(" "); } public void SelectSort() { int out, in, min; for (out = 0; out < nElems; out++) { min = out; for (in = out + 1; in < nElems; in++) { if (a[in] < a[out]) { min = in; swap(out, min); } } } } //交换位置 public void swap(int one,int two){ long temp = a[one]; a[one] = a[two]; a[two] = temp; }}
入口函数:
public class SelectSort { public static void main(String[] args){ int maxSize = 100; SelectArray arr = new SelectArray(maxSize); arr.insert(77); arr.insert(88); arr.insert(11); arr.insert(33); arr.insert(00); arr.insert(99); arr.insert(22); arr.insert(44); arr.insert(66); arr.insert(55); arr.display(); arr.SelectSort(); System.out.println("___________分割线__________________"); arr.display(); }}结果如下:
77 88 11 33 0 99 22 44 66 55 ___________分割线__________________0 11 22 33 44 55 66 77 88 99
阅读全文
0 0
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序:
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 由面试引出我对HashMap的理解
- Linux命令补充
- java内存区域讲解
- nodejs的安装配置
- springmvc三种返回值方式
- 选择排序
- HtmlUnit实现模拟浏览器点击按钮的效果
- static的用法详解--C语言和C++分别介绍
- TCP对SACK的处理以及乱序的处理细节
- 面向过程和面向对象
- linux sar命令
- 改进版简易卖票系统,线程操作
- 【游戏跨场景寻路】基于as3语言的游戏地图跨场景寻路功能的实现
- linux 标准流管道 popen 源码理解