C语言-排序算法+C语言例程

Posted 每天进步一点点的小李

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言-排序算法+C语言例程相关的知识,希望对你有一定的参考价值。

C语言-排序算法(二)+C语言例程(五)
C语言-排序算法(二)+C语言例程(五)
C语言-排序算法(二)+C语言例程(五)
C语言-排序算法(二)

https://www.runoob.com/cprogramming/c-sort-algorithm.html

①插入排序

    插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到 {displaystyle O(1)} {displaystyle O(1)}的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

C语言-排序算法(二)+C语言例程(五)

void insertion_sort(int arr[], int len){ int i,j,temp; for (i=1;i<len;i++){ temp = arr[i]; for (j=i;j>0 && arr[j-1]>temp;j--) arr[j] = arr[j-1]; arr[j] = temp; }}

希尔排序

    希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。

希尔排序是基于插入排序的以下两点性质而提出改进方法的:

1、插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;

2、但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位

       C语言-排序算法(二)+C语言例程(五)

void shell_sort(int arr[], int len) { int gap, i, j; int temp; for (gap = len >> 1; gap > 0; gap = gap >> 1) for (i = gap; i < len; i++) { temp = arr[i]; for (j = i - gap; j >= 0 && arr[j] > temp; j -= gap) arr[j + gap] = arr[j]; arr[j + gap] = temp; }}


C语言-排序算法(二)+C语言例程(五)

C语言例程(六)

①创建函数并进行调用

void hello_world(void){ printf("Hello world!
");
}void three_timeshello(void){ int counters; for (counters = 1; counters <= 3; counters++) hello_world(); }int main(void){ three_timeshello(); }

C语言-排序算法(二)+C语言例程(五)

学习使用按位与 &

int main(){ int a, b; a = 077; b = a & b; printf("a与b为:%d
", b); b &= 7; printf("a与b为:%d
", b); return 0;}

C语言-排序算法(二)+C语言例程(五)

③学习使用按位或 |

int main(){ int a, b; a = 077; b = a | 3; printf("b的值为:%d
", b); b |= 7; printf("b的值为:%d
", b); return 0;}

C语言-排序算法(二)+C语言例程(五)

④学习使用按位异或 ^

int main(){ int a, b; a = 077; b = a ^ 3; printf("b 的值为 %d 
", b); b ^= 7; printf("b 的值为 %d 
", b); return 0;}

C语言-排序算法(二)+C语言例程(五)

C语言-排序算法(二)+C语言例程(五)
C语言-排序算法(二)+C语言例程(五)
日工作记录
C语言-排序算法(二)+C语言例程(五)
C语言-排序算法(二)+C语言例程(五)

公众号ID: gh_dc943d9de6b5

扫码关注最新动态



以上是关于C语言-排序算法+C语言例程的主要内容,如果未能解决你的问题,请参考以下文章

RSSI 平面 三点定位算法(C语言JS源码例程)

数独 算法 C语言 代码

C语言快排

C语言快速排序代码

C语言冒泡排序法代码

C语言,快速排序算法