当前位置 博文首页 > KOOKNUT的博客:常见排序算法以及其时间复杂度

    KOOKNUT的博客:常见排序算法以及其时间复杂度

    作者:[db:作者] 时间:2021-07-02 21:29

    冒泡算法:时间复杂度O(n^2)、比较稳定

    void Sub_1()
    {
    	/*使用双for循环,然后第一个for循环确定遍历次数
    	第二个for循环来进行比较,进行转换*/
    	int v1[5] = { 1,4,3,2,6 };
    	int i, j;
    	for (i = 0; i < (sizeof(v1) / sizeof(int)); i++)
    	{
    		for (j = i + 1; j < (sizeof(v1) / sizeof(int)); j++)
    		{
    			if (v1[i] > v1[j])//当前是否大于它后面的那些元素,如果大,则换到后面
    			{
    				//1 4 3 2 6
    				//1 3 4 2 6
    				//1 2 4 3 6
    				//1 2 3 4 6
    				swap(v1[i], v1[j]);//交换两数位置
    			}
    		}
    	}
    }
    

    选择排序:时间复杂度O(n^2) 、不稳定

    void Sub_2()
    {
    	int v1[5] = { 1,4,3,2,6 };
    	int Length = sizeof(v1) / sizeof(int);
    	int Index; 
    	for (int i = 0; i < Length - 1; i++)
    	{
    		Index = i;
    		for (int j = i + 1; j < Length; j++)
    		{
    			if (v1[j] < v1[Index])
    			{
    				Index = j;//确保每次Index得到的索引是最小的数据
    			}
    		}
    		if (v1[Index] < v1[i])
    		{
    			swap(v1[i], v1[Index]);
    		}
    	}
    }
    

    …待继续更新

    cs