易截截图软件、单文件、免安装、纯绿色、仅160KB

经典排序算法 C实现

PART (1)
/*
===============================================
经典排序思想,并用C语言指针实现排序算法
================================================
*/
/*
=============================================================================
相关知识介绍(所有定义只为帮助读者理解相关概念,并非严格定义):
1、稳定排序和非稳定排序
 
 简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就
说这种排序方法是稳定的。反之,就是非稳定的。
 比如:一组数排序前是a1,a2,a3,a4,a5,其中a2=a4,经过某种排序后为a1,a2,a4,a3,a5,
则我们说这种排序是稳定的,因为a2排序前在a4的前面,排序后它还是在a4的前面。假如变成a1,a4,
a2,a3,a5就不是稳定的了。
2、内排序和外排序
 在排序过程中,所有需要排序的数都在内存,并在内存中调整它们的存储顺序,称为内排序;
 在排序过程中,只有部分数被调入内存,并借助内存调整数在外存中的存放顺序排序方法称为外排序。
3、算法的时间复杂度和空间复杂度
 所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
 一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
================================================================================
*/
/*
================================================
 功能:选择排序
 输入:数组名称(也就是数组首地址)、数组中元素个数
================================================
*/
/*
====================================================
算法思想简单描述:
 在要排序的一组数中,选出最小的一个数与第一个位置的数交换;
 然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环
 到倒数第二个数和最后一个数比较为止。
 选择排序是不稳定的。算法复杂度O(n2)--[n的平方]
=====================================================
*/
void select_sort(int *x, int n)
{
 int i, j, min, t;
 for (i=0; i<n-1; i++) /*要选择的次数:0~n-2共n-1次*/
 {
  min = i; /*假设当前下标为i的数最小,比较后再调整*/
  for (j=i+1; j<n; j++)/*循环找出最小的数的下标是哪个*/
  {
   if (*(x+j) < *(x+min))


相关文档:

C函数指针总结

本文仅限于C,主要自己老忘。别的废话少说。
1.Basic
首先考虑函数在函数体内的定义,如下: 
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
 int add(int,int); 
 int def(int, int);
 printf("%d\n", add(1,3));
 printf("%d\n", def(3,1));
  ......

c默认是传值的

在c中,参数默认是传值的,即在参数入栈时被复制一份
。在函数里面修改这些参数,不会影响外面的调用者。
例如
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void get_str(char * p)
{
    p = (char *)malloc(sizeof("abcd"));
    s ......

C图形编程学习


一、屏幕操作函数
1. clrscr()清除字符窗口函数
2. window()字符窗口函数
3. gotoxy()光标定位函数
4. clreol() 清除光标行尾字符函数
5. insline() 插入空行函数
6. delline() 删除一行函数
7. gettext() 拷进文字函数
8. puttext() 拷出文字函数
9. movetext() 移动文字函数
二、字符属性函数
10. textmode( ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号