ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C语言- 基础数据结构和算法 - 16 插入排序20220617

2022-06-17 21:34:50  阅读:152  来源: 互联网

标签:arr 16 20220617 插入排序 int 序列 include tb


  C语言- 基础数据结构和算法 - 16 插入排序20220617。

听黑马程序员教程《基础数据结构和算法 (C版本)》,

照着老师所讲抄的, 视频地址https://www.bilibili.com/video/BV1vE411f7Jh?p=1

喜欢的朋友可以去看看,欢迎大家一起交流学习。

/*
    插入排序:将无序序列插入到有序序列中。
    两种情况下效率高:
        1、元素序列基本有序的情况下。
        2、元素个数少的情况下。
*/

16 插入排序20220617.c

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <string.h>
  4 #include <time.h>
  5 #include <sys/timeb.h>
  6 
  7 /*
  8     插入排序:将无序序列插入到有序序列中。
  9     两种情况下效率高:
 10         1、元素序列基本有序的情况下。
 11         2、元素个数少的情况下。
 12 */ 
 13 
 14 #define MAX 20
 15 
 16 
 17 long getSystemTime(){        // 取得当前系统时间 
 18     struct timeb tb;
 19     ftime(&tb);
 20     return tb.time*1000 + tb.millitm;
 21 }
 22 // 交换函数
 23 void Swap(int* a,int* b){
 24     
 25     int temp = *a;
 26     *a = *b;
 27     *b = temp;
 28     
 29 }
 30 // 泡泡排序
 31 void BubbleSort(int arr[],int lenght){
 32     
 33     int i,j;
 34     for(i=0;i<lenght;i++){
 35         for(j=0;j<lenght-i-1;j++){
 36             if(arr[j+1]> arr[j]){
 37                 Swap(&arr[j+1],&arr[j]);
 38             }
 39         }
 40     }
 41 }
 42 // 选择排序,减少交换次数
 43 void SelectSort(int arr[],int lenght){
 44     
 45     int i,j;
 46     int min;
 47     
 48     for(i=0;i<lenght;i++){
 49         min = 1;
 50         for(j=i+1;j<lenght;j++){
 51             if(arr[j] < arr[min]){
 52                 min = j;
 53             }
 54         }
 55         if(min != i){
 56             Swap(&arr[min],&arr[i]);
 57         }
 58     }
 59 } 
 60 // 插入排序
 61 void InsertSort(int arr[],int lenght){
 62     
 63     int i,j;
 64     for(i=1;i<lenght;i++){
 65         
 66         if(arr[i] < arr[i-1]){
 67             int temp = arr[i];
 68             for(j=i-1;j>=0&& temp < arr[j];j--){
 69                 arr[j+1] = arr[j];
 70             }
 71             arr[j+1]= temp;
 72         }
 73     }
 74 } 
 75 // 打印函数
 76 void PrintArray(int arr[],int lenght){
 77     
 78     int i;
 79     for(i=0;i<lenght;i++){
 80         printf("%-3d ",arr[i]);
 81     }
 82     printf("\n-------------------------------------------------\n");
 83 } 
 84 
 85 
 86 int main(){
 87     printf("好好学习,天天向上~!!!\t\t\t 16 插入排序20220617\n\n");
 88     
 89     int arr[MAX];
 90     
 91     srand((unsigned int)time(NULL));        // 随机 
 92     
 93     int i;
 94     for(i=0;i<MAX;i++){
 95         arr[i] = rand() % MAX; 
 96     }
 97     
 98     printf("插入排序前: ");
 99     PrintArray(arr,MAX); 
100         
101     
102     printf("插入排序后: ");    
103     InsertSort(arr,MAX);
104     PrintArray(arr,MAX);
105     
106     
107     printf("\n");
108     system("pause");
109     return 0;
110 }

 

标签:arr,16,20220617,插入排序,int,序列,include,tb
来源: https://www.cnblogs.com/stou/p/16387070.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有