选择排序本质:内层循环找出最小值并与数组左边的交换,外层循环进行数组从左到右排序,从小到大排序。
2014-04-12 15:48
302 查看
package none001; //选择排序和冒泡排序执行了相同的比较次数,但是,选择排序无疑比冒泡排序快很多,因为他执行的交换次数少于冒泡排序,但时间复杂度都为O(N^2) //本质,内层循环找出最小值并与数组左边的交换,外层循环进行数组从左到右排序,从小到大排序。 public class SelectSortApp { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ArraySelect ab=new ArraySelect(10002); ab.insert(77); ab.insert(99); ab.insert(66); ab.insert(44); ab.insert(55); ab.insert(22); ab.insert(88); ab.insert(11); ab.insert(0); ab.insert(66); ab.insert(33); ab.display(); ab.SelectSort(); ab.display(); } } class ArraySelect{ int items; long[] array; ArraySelect(int max){ this.items=0; array=new long[max]; } public void insert(long value){ array[items]=value; items++; } public void SelectSort(){ int i,j,k; for(i=0;i<items-1;i++){ k=i; for(j=i+1;j<items;j++) if(array[j]<array[k]) k=j; if(i!=k){ array[i]^=array[k]; array[k]^=array[i]; array[i]^=array[k]; } } } public void display(){ for(int i=0;i<items;i++){ System.out.print(array[i]+" "); } System.out.println(); } }
相关文章推荐
- C语言//选择排序 //查找数组范围内最小的值跟第一个值交换 k记录最小值下标
- 利用随机类生成数组,并用冒泡排序以及选择排序对不同数组的元素进行从小到大的排序
- C语言 选择排序算法原理和实现 从数组中 找出最小的元素然后交换位置
- 用选择法对数组中的10个数进行从小到大排序.Cpp
- 长度为N的数组乱序存放着0带N-1.现在只能进行0与其他数的swap操作,请设计并实现排序,必须通过交换实现排序。
- 给定一个字符串数组{"nba","abc","cba","zz","qq","haha"},请按照字典顺序进行从小到大的排序。
- 简单for循环进行数组排序
- 对数组进行选择排序
- java排序,随机生成一个数组,对其进行排序,偶数在前奇数在后,偶数从小到大排,奇数从大到小排
- 定义一个数组工具类!数组选择排序、冒泡排序、获取最大、最小值!
- 找出两个数组中相同的元素,不排序直接两次循环取出
- 长度为N的数组乱序存放着0带N-1.现在只能进行0与其他数的swap操作,请设计并实现排序,必须通过交换实现排序。
- lintcode寻找旋转排序数组中的最小值/循环有序数组的查找
- 选择排序算法---对一个数组进行选择排序
- 个有10个元素的整型一维数组,用户输入9个数据,调用函数,对数组元素进行从小到大排序后,在函数中输入一个数,插入到数组中正确的位置,并输出
- 对1...n,数组长度未知进行交换排序(无重复值,时间复杂度O(n), 空间复杂度O(1))
- java语言基础数组选择排序从小到大-作者:逝秋
- 019 一维数组 选择法对十个整数进行排序
- 以行为单位对字符串变量下标为奇数位置上的字符按其ASCii值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中
- 求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序