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

    第一个元素看成一个长度为1按值有序的子序列,然后只要一次从第二个元素开始逐个把其余的n-1个元素插入到某个按值有序的子序列中就可以了。

    #include <stdio.h>
    
    int main(){
    	int n,K[101];
    	printf("要输n的个数:
    ");
    	scanf("%d",&n);
    	printf("请输入%d个数值",n);
    	for (int i=0;i<n;i++)
    	{
    		scanf("%d",&K[i]);
    	}
    
    	for (i=1;i<n;i++) //n-1次排序
    	{
    		int temp = K[i]; //保存第i个数值
    		int j = i-1; //j为从第j个开始被比较的元素 同时,意味着temp的元素位置始终在j之前
    		while(j>=0 && temp<K[j]) //如果找到第j+1位置上的元素大于temp意味着,跳出循环,同时,j的位置上放上temp的值
    			K[j+1] = K[j--];  //如果temp的值比j+1位置上的小,那么从第j+1位上的元素移动到j+2的位置上,一直到j<0或者temp的值大于等于K[j]的值,此时,temp的值应该放在K[j+1]上
            K[j+1] = temp;
    	}
    	for (i=0;i<n;i++)
    	{
    		printf("%d ",K[i]);
    	}
    }
    
  • 相关阅读:
    假期(面试题二)
    假期(面向对象相关)
    假期(模块相关)
    假期(面试题一)
    假期(函数相关)
    最后一个假期
    Django缓存问题
    python pass关键字神奇吗
    python中类变量,成员变量
    python类中self是什么
  • 原文地址:https://www.cnblogs.com/CCCrunner/p/11781682.html
Copyright © 2011-2022 走看看