精华内容
下载资源
问答
  • C 插入排序

    2020-08-13 01:24:01
    void InsertSort(int a[],int n){ for(int j=1;...//a[j]是待排序待元素 int i=j-1;// while(i>=0&&key<a[i]){ a[i+1]=a[i];//若 存在大于key的元素,则将该元素后移 i--; } a[i+1]=key;
    void InsertSort(int a[],int n){
        for(int j=1;j<n;j++){
            int key=a[j];//a[j]是待排序待元素
            int i=j-1;//
            while(i>=0&&key<a[i]){
                a[i+1]=a[i];//若存在大于key的元素,则将该元素后移
                i--;
            }
            a[i+1]=key;
        }
    }
    
    展开全文
  • C插入排序

    2017-12-19 09:45:49
    算法步骤: 1.从第一个元素开始,该元素可以认为已经被排序 2.取出下一个元素,在已经排序的元素序列中从后向前扫描 3.如果该元素(已排序)大于新元素,则该元素移到下...5.将新元素插入到该位置后 6.重复步骤2~5

    算法步骤:

    1.从第一个元素开始,该元素可以认为已经被排序

    2.取出下一个元素,在已经排序的元素序列中从后向前扫描

    3.如果该元素(已排序)大于新元素,则该元素移到下一个位置

    4.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置

    5.将新元素插入到该位置后

    6.重复步骤2~5


    实例:

    #include <stdio.h>
    
    void insertsort(int *data, int size){
    	int i, j;
    	int tmp;
    	for (i = 1; i<size; i++){
    		tmp = *(data + i);
    		for (j = i; j>0 && *(data + j - 1)>tmp; j--)
    			*(data + j) = *(data + j - 1);
    		*(data + j) = tmp;
    	}
    }
    
    void displayoutcome(int *data, int size){
    	int i;
    	for (i = 0; i<size; i++)
    		printf("%d ", *(data + i));
    	printf("\n");
    }
    
    int main(){
    	/*
    	时间复杂度:O(n^2)
    	空间复杂度:O(1)
    	思路:从第二个元素开始,不断前移。针对数据量比较小时可用。
    	*/
    	int data[] = { 60, 2, 97, 78, 0, 84, 68, 23, 48, 22, 63, 31, 43, 42, 82, 9,
    		57, 21, 42, 62, 83, 98, 64, 72, 96, 31, 76, 13, 70, 49, 10, 60, 72, 36,
    		26, 4, 56, 54, 13, 9, 98, 45, 61, 90, 88, 80, 30, 50, 77, 83, };
    	int size = sizeof(data) / sizeof(int);
    	insertsort(data, size);
    	displayoutcome(data, size);
    	getchar();
    	return 0;
    }


    结果:



    参考网址

    展开全文
  • linux c插入排序

    2015-05-22 16:48:22
    linux c 插入排序
    #include <stdio.h>
    #include <stdlib.h>




    int main(int argc,char *argv[])
    {


            int i,j;
            int a[10]={9,8,7,6,5,4,3,2,1,0};
            int temp;


            for(i=1;i<10;i++)
            {
                    for(j=i-1;j>=0;j--)
                    {
                            if(a[j+1]<a[j])
                            {
                                    temp=a[j];
                                    a[j]=a[j+1];
                                    a[j+1]=temp;
                            }
                    }
            }


            for(i=0;i<10;i++)
                    printf("%d ",a[i]);
            printf("\n");


            exit(0);
    }
    展开全文
  • C 插入排序 希尔排序

    2014-01-05 17:49:05
    插入排序 /* 插入排序 */ void InsertionSort(int A[], int N) { int j, P; int Tmp; for(P = 1; P ; P++) { Tmp = A[P]; for(j = P; j > 0 && A[j - 1] > Tmp; j--) { A[j] = A[j - 1]; } ...

    插入排序

    /* 插入排序 */
    void InsertionSort(int A[], int N)
    {	
    	int j, P;
    	
    	int Tmp;
    	for(P = 1; P < N; P++)	
    	{
    		Tmp = A[P];
    		for(j = P; j > 0 && A[j - 1] > Tmp; j--)
    		{
    			A[j] = A[j - 1];			
    		}
    		A[j] = Tmp;			
    	}
    }

    希尔排序

    /* 使用希尔增量的希尔排序 */
    void Shellsort(int A[], int N)
    {	
    	int i, j, Increment;
    	int Tmp;
    	
    	for(Increment = N / 2; Increment > 0; Increment /=2)
    	{
    		for(i = Increment; i < N; i++)
    		{
    			Tmp = A[i];
    			for(j = i; j >= Increment; j -= Increment)
    				if(Tmp < A[j - Increment])
    					A[j] = A[j - Increment];
    				else
    					break;
    			A[j] = Tmp;			
    		}		
    	}
    }
    


    展开全文
  • linux C插入排序

    2020-10-14 23:09:19
    i++)//默认第一个元素是有序,后面为无序 { if (array[i] [i-1])// 若该元素比前一个元素大,说明前面元素都是有序的,不需要排序 { for (j = i-1; j >= 0 && array[i] [j]; j--)//结束条件:array[i] [j] ...
  • LinuxC插入排序

    2020-06-28 01:00:40
    排序算法之插入排序 编程语言:C 编译环境:gcc 操作系统:Linux 算法分析:升序排序时查看数组当前元素死否有比当前元素大的值,若比当前值大则进行置换只到置换到没有为止。降序排序于此相似。 #include #include ...
  • C插入排序法实现

    2015-12-16 18:39:44
    插入排序 void finsort2(){ int l; int i,j,k,data,m; int a[]={11,12,7,14,6,17,8,3,7,5}; //3,7,5为要插入的数字 l=sizeof(a)/sizeof(int); printf("插入排序前的数组:\n"); for(m=0;m;m++){ printf
  • 今天复习了下一些常见的排序算法,并用c语言实现了下。...#define MAX 65536 /*用于归并排序中的哨兵*//*简单插入排序,时间复杂度为o(n2),稳定排序,适合已经排好序的*/void insertSort(int arr[],int len){ int ...
  • 插入排序 void InsertSort(int n,int *a) { for(int i=1;i<n;i++) { if(a[i]<a[i-1]) { int j=i-1; int x=a[i]; while(j>=0&&x<a[j]) { a[j+1]=a[j]; j--; } a...
  • C 插入排序算法

    2012-09-26 23:34:00
    #include #include < string .h> #include ...排序后的数组为%s \n ...请输入要排序的字符串54321 排序后的数组为45321 排序后的数组为34521 排序后的数组为23451 排序后的数组为12345 请按任意键继续. . .  
  • 以下三种插入排序时间复杂度均为O(n^2) 简单插入排序,简单直接。假定数组有序,插入 i, 从后往前遍历找到适合位置 j,移动 j +1 ~ i -1往后一位,插入i到j中。 void insertSort(int *arr, int numsSize) { int ...
  • 想必各种数据结构和算法的书上...1、 简单插入排序。最原始的插入排序,不多说,直接上码。 void insertSort(int *array,int len) { if(NULL == array|| 1 == len) return; //检测还是要的 int i,j; for(i = 1;i;
  • 比较C++和C实现直接插入排序和二分插入排序效率!
  • 经典排序方法 插入排序.c C语言 排序 插入排序
  • void Insert(int *a,int *b)//插入排序,插入排序前面是最小的 { int j; for(int i=0;a[i]!='\0';i++) { if(a[i][0])//若新插入的元素比第一个还小,则插到第一个 { for(int j=i;j>=0;j--) b[j+1]=...
  • java 插入排序算法实现Insertion sort is a simple sorting algorithm that is online, stable, and in-place. 插入排序是一种简单的排序算法,可在线,稳定且就地进行 。 A stable sorting algorithm is the one ...
  • 插入排序.c

    2017-12-18 16:42:53
    插入排序:直接排序,希尔排序
  • C 排序算法:插入排序 一、实现 #include<stdio.h> void insertSort(int *p, int size); void disArr(int *p,int size); int main() { int arr[] = {1,9,8,7,0,2}; insertSort(arr, sizeof(arr) /...
  • 问题 c: 插入排序Insertion sort is a simple sorting algorithm for a small number of elements. 插入排序是一种针对少量元素的简单排序算法。 例: (Example:) In Insertion sort, you compare the key element...
  • 直接插入排序 如下,以C中数组为例来展示该算法。在insertSort函数中对待排序数组从第二位数开始进行比较(均与前一位进行比较),在内循环中选定该次循环待排序数的位置并放置。 直接插入排序并不能保证每一次...
  • linux c 实现插入排序

    2015-05-22 16:30:34
    linux c 实现插入排序
  • 直接插入排序算法——C/C++

    万次阅读 多人点赞 2019-06-11 23:16:00
    直接插入排序 1、插入排序(Insertion-Sort)的基本思想: 每次将一个待排序的数据按照大小插入到前面已经排好序的适当位置,直到全部数据插入完成为止。 2、插入排序的步骤: 2.1、建立一个哨兵(即临时变量),把...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,167
精华内容 1,666
关键字:

c插入排序