
C语言算法
秒杀123
风雨飘摇人生路,只有自己是自己的主人!
天助自助者!
展开
-
C语言之选择排序法(1)
找出最大的一个元素,和末尾的元素交换,然后再从头开始,查找第1 个到第N-1 个元素中最大的一个,和第N-1 个元素交换……其实差不多就是冒泡法的思想,但整个过程中需要移动的元素比冒泡法要少,因此性能是比冒泡法优秀的。 算法实现代码: // test.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" //选择排序法 void Sea原创 2015-03-24 09:41:29 · 324 阅读 · 0 评论 -
C语言之希尔排序法(4)
希尔排序(ShellSort)是插入排序的一种 是针对直接插入排序算法的改进算法先将要排序的一组数按某个增量gap分成若干组,每组中记录的下标相差gap.对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。 算法代码: //希尔排序法 void Shell_Sort(int *a,int len) {原创 2015-03-24 13:05:54 · 498 阅读 · 0 评论 -
C语言之直接插入排序法(2)
直接插入排序(straight insertion sort)的做法是: 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从前向后扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。 直接插入排序属于稳定的排序,最坏时原创 2015-03-24 09:58:57 · 409 阅读 · 0 评论 -
C语言之冒泡排序法(3)
其算法很简单,就是比较数组相邻的两个值,把大的像泡泡一样“冒”到数组后面去,一共要执行N的平方除以2这么多次的比较和交换的操作(N为数组元素),其复杂度为Ο(n²)。 算法代码: //冒泡排序法 #include "stdafx.h" void Mao_Sort(int *a,int len) { int i,j,temp; for(i=0;i { for(j=0;j {原创 2015-03-24 11:03:39 · 316 阅读 · 0 评论 -
C语言之快速排序(5)
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速转载 2015-03-24 15:14:26 · 301 阅读 · 0 评论