//*
*选择排序:执行一次内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 ' );
}
}
}