排序数组

此博客链接:https://www.cnblogs.com/ping2yingshi/p/12604536.html

排序数组(38min)

题目链接:https://leetcode-cn.com/problems/sort-an-array/

给你一个整数数组 nums,请你将该数组升序排列。

示例 1:

输入:nums = [5,2,3,1]
输出:[1,2,3,5]
示例 2:

输入:nums = [5,1,1,2,0,0]
输出:[0,0,1,1,2,5]
 题解:

           题意:给顶一个数组,对数组中的数字按从小到大排序。

           方法:

                    1)选择排序。

                    2)冒泡排序。

                  

          2种思路:

                     思路1.选择排序。使用双重循环,第一个数和后面的数依次进行比较,记录后面数小的数组下标,把第一个数和后面最小的数交换,在把第二个数和后面数进行比较,找到后面数最小的下标,把第二个数和                                 后面最小的数交换,依次类推,直到倒数第二个数和倒数第一个数比较。

                    思路2.冒泡排序。使用双重循环,相邻数字之间进行比较,前者比后者大,两数交换,一趟数字交换完毕后,重头开始重新比较,直到最后数组安好序。 

1.选择排序代码:

 int len=nums.length;
        for(int i=0;i<len-1;i++)//选择排序
        {
            int k=i;
            for(int j=i+1;j<len;j++)
                if(nums[k]>nums[j])
                {
                    k=j;
                }
            int temp;
            temp=nums[i];
            nums[i]=nums[k];
            nums[k]=temp;
        }

2.冒泡排序代码:

int len=nums.length;
        for(int i=0;i<len;i++)//冒泡排序
        {
            for(int j=0;j<len-1-i;j++)
                if(nums[j]>nums[j+1])
                {
                    int temp;
                    temp=nums[j];
                    nums[j]=nums[j+1];
                    nums[j+1]=temp;
                }
            
        }

冒泡排序代码超时,看到测试示例,我惊呆了。测试示例如图:

原文地址:https://www.cnblogs.com/ping2yingshi/p/12604536.html