数据结构学习之选择排序
来源:互联网 发布:淘宝便宜的衣服能买吗 编辑:程序博客网 时间:2024/06/06 01:13
package datastructure;class ArraySel{ private long[] a; private int nElems; public ArraySel(int max) { a = new long[max]; nElems = 0; } public void insert(long value) { a[nElems] = value; nElems++; } public void display() { for (int j = 0; j < nElems; j++) { System.out.print(a[j] + " "); } System.out.println(" "); } public void selectionSort() { int min; for (int out = 0; out < nElems - 1; out++) { min = out; for (int in = out + 1; in < nElems ; in++){ if (a[in] < a[min]) min = in; } swap(out,min); } } private void swap(int n1,int n2){ long temp = a[n1]; a[n1] = a[n2]; a[n2] = temp; }}public class selectSort { public void main(String[] args) { ArraySel arr = new ArraySel(100); arr.insert(77); arr.insert(88); arr.insert(44); arr.insert(55); arr.insert(22); arr.insert(99); arr.insert(11); arr.insert(00); arr.insert(66); arr.insert(33); arr.display(); arr.selectionSort(); arr.display(); }}
与冒泡排序不同的地方在于,此排序是讲整个数据项的最小项找出后,与第一个数组项交换,从而完成排序。
out=0,min=out,此时的最小是为a[0],然后内层循环用来找最小的数据项,然后将它与a[0]交换,内层循环结束,外层中的out自增1,直到循环结束。
选择排序的效率
选择排序和冒泡排序都小号了相同的时间,即O(N^2),但是在交换次数上少了很多。当N较大的时候,比较的次数是主要的,但是当N比较小的时候,特别是在交换的时间级比比较的时间级大的多的时候,选择排序实际上是相当快的。
0 0
- 数据结构学习之选择排序
- 数据结构学习--选择排序
- 数据结构之选择排序
- 数据结构之选择排序
- 数据结构之选择排序
- 《数据结构--排序》之选择排序
- 数据结构排序之选择排序
- java数据结构之选择排序
- 数据结构之选择排序<select_sort>
- 复习数据结构之选择排序
- OC学习之道:数据结构中几种常见的排序算法:选择排序,插入排序.快速排序
- 【数据结构之排序6】直接选择排序
- 数据结构之排序--选择类排序
- 第十节 数据结构之冒泡排序、选择排序
- 数据结构排序算法之选择排序
- 数据结构排序之直接选择排序
- 数据结构之冒泡排序和选择排序
- 数据结构之排序(二)选择排序
- andbase学习笔记一
- Android 颜色渲染(十) ComposeShader组合渲染
- WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
- 论反馈信息如何推动 IT 运维团队进步?
- VBA学习笔记(2)之文件操作
- 数据结构学习之选择排序
- Vim 复制粘帖格式错乱问题的解决办法
- (初级)单兵开发者开发环境最佳实践(Android+JavaWeb)
- Scanner ,Math.random()答题正确统计
- 预览 doc docx,xls,xlsx,pdf等API 说明文档
- 用Python玩数据-笔记二
- JS实现GridView式的数据加载(带滚动条)
- 【iOS学习】十一、ActionSheet
- Skipping failed optional dependency /chokidar/fsevents