冒泡排序 选择排序

2017-11-28  本文已影响0人  youtianlong123

冒泡排序

冒泡
java 实现
    public static int[] sort(int[] arr){
        for (int i = arr.length; i > 0 ; i--) {
            // 小小的优化,如果flag在一次遍历之后还是false,说明数组本来就是有序的,根本不需要排序,直接break就可以了
            boolean flag = false;
            for (int j = 0; j < i - 1; j++) {
                if(arr[j] > arr[j + 1]){
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j+1] = temp;
                    flag = true;
                }
            }
            
            if(!flag){
                break;
            }
        }
        return arr;
    }
C 实现
void bubbleSort(int* nums, int numsSize){
    for (size_t i = numsSize; i > 0; i--)
    {
        int flag = 0;
        for (size_t j = 0; j < i - 1; j++)
        {
            if (nums[j] > nums [j + 1])
            {
                int temp = nums[j];
                nums[j] = nums[j + 1];
                nums[j + 1] = temp;
                flag = 1;
            }
            
        }

        if (!flag)
        {
            printf("%d",i);
            break;
        }
    }
}

选择排序

选择
java 实现
    private static int[] sort(int[] arr){
        for (int i = 0; i < arr.length - 1; i++) {
            int index = i;
            for (int j = i + 1; j < arr.length; j++) {
                if(arr[j] < arr[index]){
                    index = j;
                }
            }
            
            if(index != i){
                int temp = arr[i];
                arr[i] = arr[index];
                arr[index] = temp;
            }
        }
        return arr;
    }
C 实现
void selectSort(int* nums, int numsSize){
    for (size_t i = 0; i < numsSize; i++)
    {
        int index = i;
        for (size_t j = i + 1; j < numsSize; j++)
        {
            if (nums[j] < nums[index])
            {
                index = j;
            }
        }

        if (index != i)
        {
            int temp = nums[i];
            nums[i] = nums[index];
            nums[index] = temp;
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读