基本数组的排序算法

版权声明:有一种生活不去经历不知其中艰辛,有一种艰辛不去体会,不会知道其中快乐,有一种快乐,没有拥有不知其中纯粹 https://blog.csdn.net/wwwzydcom/article/details/83217654

二维数组的基本排序综合

经典冒泡排序核心代码:核心思想相邻两个元素进行比较

	for (int i = 0; i <a.length ; i++) {
        for (int j = 0; j <a.length-1-i ; j++) {
            if (a[j]>a[j+1]) {
                int temp;
                temp = a[j+1];
                a[j+1] = a[j];
                a[j] = temp;
            }
        }
    }

直接选择排序:将第一个元素和后面的比较,和较小的比较,拿出较小的在与后面的比较,

优化后的算法:

for (int i = 0; i <a.length -1; i++) {
        int t = i; //标记量
        for (int j = i; j <a.length ; j++) {
            if (a[i]>a[j]){
                t=j;
            }
        }
        if (t != i){  //当标记量发生变化,说明后续有值较大,交换值
            int temp = a[t];
            a[t] = a[i];
            a[i] = temp;
        }
    }

猜你喜欢

转载自blog.csdn.net/wwwzydcom/article/details/83217654