zoukankan      html  css  js  c++  java
  • 直接插入排序

    插入排序多采用in-place在数组上实现。具体算法描述如下:

    1. 从第一个元素开始,该元素可以认为已经被排序
    2. 取出下一个元素,在已经排序的元素序列中从后向前扫描
    3. 如果该元素(已排序)大于新元素,将该元素移到下一位置
    4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
    5. 将新元素插入到该位置中
    6. 重复步骤2~5
    #include <IOSTREAM>
    using namespace std;
    
    // 直接插入排序算法
    int main(){
    	int A[10]={8,2,1,5,4,3,6,9,10,7};
    	int key,j;
    	for(int i=1;i<10;i++)
    	{
    		if (A[i-1]>A[i])
    		{
    			key = A[i];
    			for (j =i-1; j>0&&A[j]>key; j--)
    			{
    				A[j+1] = A[j];//注意这里从前一项值依次复制给后一项,不会造成数据丢失
    			}
    			A[j] = key;//不加这句会造成数据重复
    		}
    	}
    		
    	for (int k=0;k<10;k++)
    	{
    		cout << A[k] << endl;
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    树分治
    实现自己的shell--MIT xv6 shell
    逆元打表
    Linux fork()函数
    三分:求解凸函数极值
    anti-nim 游戏
    nginx配置文件详解
    nginx之别名、location使用
    shell脚本编程基础知识点
    linux任务计划
  • 原文地址:https://www.cnblogs.com/lingc/p/3363664.html
Copyright © 2011-2022 走看看