12
回答
这算哪种排序法???
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
private int[] arr;
public void selectSort(){
    int len = arr.length;
    for(int i=0;i<len-1;i++){
        for(int j = i + 1; j<len;j++){
            if(arr[j] > arr[i]){
                int tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
        }
    }
}
<无标签>
举报
共有12个答案 最后回答: 5年前

引用来自“铂金小鸟”的答案

冒泡
// 1、冒泡排序
	public void bubbleSort(){
		int len = arr.length;
		for(int i = 1; i < len; i ++){
			for(int j = 0; j < i; j++){
				if(arr[j] < arr[i]){
					int tmp = arr[i];
					arr[i] = arr[j];
					arr[j] = tmp;
				}
			}
		}
	}
好吧,不规范的代码害死人。看书上写选择排序,因为最后交换数据的时候是在外循环里的,不过书上的嵌套缩进不对,导致我自己写的时候怎么都排不好顺序,只好自己慢慢修改,就成了现在的样子,不伦不类的。。。
山寨冒泡而已,不是真正的冒泡,实际上属于选择排序。看第二层循环就知
--- 共有 3 条评论 ---
只会百度的程序员 回复 @tinyhare : 冒泡我知道,我是说这个跟冒泡的原理差不多,都是发现满足比较条件就立即调整位置。 5年前 回复
tinyhare回复 @只会百度的程序员 : 这是冒泡:http://www.oschina.net/code/snippet_104837_1490,两层循环一个增变量i一个减变量j,交换部分只用内层循环变量j。 5年前 回复
只会百度的程序员我本意就是想写个选择排序,不过选择排序只会调整一次位置,这个是每次发现可以调整位置就会立即调整。。。应该跟冒泡类似吧。。。 5年前 回复
int SelectionSort (const PDATA pdtArr ,const COUNT ctArr) { DATA dtTemp ; PDATA pdtCurrent ,pdtLoop ,pdtNext ,pdtRecord ; if (pdtArr == NULL OR ctArr < SORT_CTARR_MIN OR ctArr > SORT_CTARR_MAX) //Check Inlegal Parameters return ERROR ; const PDATA pdtFirst = pdtArr ; const PDATA pdtOver = pdtFirst + ctArr ; for (pdtNext = (pdtCurrent = pdtFirst) + 1 ; pdtNext < pdtOver ; pdtCurrent = pdtNext++) { pdtRecord = pdtCurrent ; for (pdtLoop = pdtNext ; pdtLoop < pdtOver ; pdtLoop++) #ifdef SORT_ZORDER_DOWN if (*pdtLoop > *pdtRecord) #else if (*pdtLoop < *pdtRecord) #endif pdtRecord = pdtLoop ; if (pdtRecord != pdtCurrent) { dtTemp = *pdtCurrent ; *pdtCurrent = *pdtRecord ; *pdtRecord = dtTemp ; } } return 0 ; //Return Successfully } 只会c的程序员
顶部