C语言- 基础数据结构和算法 - 16 插入排序20220617
作者:互联网
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