首页 > 编程知识 正文

排序算法有哪些,哪种排序算法最快

时间:2023-05-05 18:41:03 阅读:141704 作者:2803

//*

*选择排序:执行一次内for循环后,将最小数量放置在数组的开头。

*

*从要排序的数据元素中选择最小或最大的一个,并将顺序放在已排序列的末尾,直到所有要排序的数据元素都已排序。

*

*/

公共类选择{

//*

实现对数组中指定的元素进行排序的排序算法

*

* @param array

*要排序的数组

* @param from

*从哪里开始排序

* @param end

*在哪里排队

* @param c

*比较器

*/

公共void选择(integer [ ] array ) )。

int minIndex; //最小索引

/*

*循环整个数组(实际上这里的上界可以是array.length - 1。 i=array.length-1时

*时,最后一个元素已经最大,array.length时内层循环不再循环),每次假设

*第一个元素是最小元素,如果可以选择第一个元素之后小于第一个元素的元素,请用第一个元素替换最小元素

*/

for(intI=0; i array.length; I ) {

minIndex=i; //假设每个回合的第一个元素为最小元素

//从假设的最小元素的下一个元素开始循环

for(intj=I1; j array.length; j ) {

//如果发现小于当前array[smallIndex]的元素,则在smallIndex中记录该元素的索引

if () array [ j ].com Pareto (array [ minindex ] ) (0) ) ) ) ) ) )。)

minIndex=j;

}

}

//以前只记录最小要素索引,当最小要素索引确定时,与各循环的第一个要素交换

swap(Array,I,minIndex );

}

}

publicstaticvoidswap (integer [ ] intgarr,int x,int y ) {

//Integer temp; //这样也可以

int temp;

temp=intgArr[x];

intgArr[x]=intgArr[y];

intgArr[y]=temp;

}

//*

*测试

*

* @param args

*/

publicstaticvoidmain (string [ ] args ) {

integer [ ] intgarr={ 5,9,1,0,4,2,- 6,3,8,0,76,- 7,7,11,12,

19、8、9、10、28、53 };

selectsortinsertsort=new selectsort (;

insertsort.select(intgarr;

集成:集成电路(for ) {

system.out.print(intobj ' );

}

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。