基础算法

c语言基础算法大全

  1. 冒泡排序
  2. 选着排序
  3. 插入排序
  4. 快速排序
  5. shell排序.
  6. 合并排序.

下面是各个排序算法的实现:

  1. 冒泡排序
void bobuleSort(int a[], int len)
{
    int i,j,flag =1;
    for(i = 0; i<len; i++)
    {
        for(int j =len-1; j>i; j--)
        {
            if(a[j] <= a[i])
            {
                int  tmp = a[j];
                a[j] = a[i];
                a[i] = tmp;
                flag = 0;
            }
        }
        if(flag) break;
    }
}
  1. 选择排序
void selectSort(int a[], int len)
{
    int i,j,k;
    for(int i = 0; i< len; i++)
    {
        k = i;
        for(j=i; j< len; j++)
        {
            if(a[k] >= a[j]) k = j;
        }
        if(k != i)
        {
            int tmp = a[k];
            a[k] =a[i];
            a[i] = tmp;
        }
    }

}

3 . 插入排序.

void insertSort(int a[], int len)
{
    int i,j,k;
    for(i = 1; i< len; i++)
    {
        if(a[i] < a[i-1])
        {
                k = a[i];
            for(j=i-1;j<len; j++)
            {
                if(k<a[j]) a[j+1] = a[j];
            }
            a[j+1] = k;
        }
    }
}

4. 快速排序.

int division(int a[], int left, int right)
{
    int key = a[left];
    while(left <= right && key <= a[right])
        right --;
        a[left] = a[right];
    while(left <= right && key <= a[left])
        left ++;
        a[right] = a[left];
    a[left] = key;
    return left;
}   

void quickSort(int a[], int left, int right)
{
    int mdedium;
    if(left<right)
    {
        medium = division(a,left,right);
        quickSort(a,left, medium-1);
        quickSort(a,medium + 1,right);
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-10 11:50:05

基础算法的相关文章

基础算法之排序--快速排序

1 /************************************************************************************** 2 * Function : 快速排序 3 * Create Date : 2014/04/21 4 * Author : NTSK13 5 * Email : [email protected] 6 * Copyright : 欢迎大家和我一起交流学习,转载请保持源文件的完整性. 7 * 任何单位和个人不经本人允许不

九章算法 基础算法 强化算法 系统设计 大数据 安卓 leetcode 高清视频

leetcode 直播视频讲座录像 九章算法视频录像,PPT 算法班,算法强化班,Java入门与基础算法班,big data项目实战班,Andriod项目实战班 九章算法下载 九章算法面试 九章算法leetcode 九章算法答案 九章算法mitbbs 九章算法班 九章算法ppt 九章算法录像 九章算法培训 九章算法微博 leetcode 视频 九章算法偷录 算法培训 算法班课程大纲: 1 从strStr谈面试技巧与Coding Style(免费试听) 2 二分搜索与旋转排序数组 Binary S

算法录 之 基础算法

这一篇文章主要说说一些基础算法,这些算是很多其他算法的基石. 主要包括  模拟,暴力,枚举,递归,贪心,分治. 1,模拟: 顾名思义,模拟就是...饿,模拟,有一些题目就是给你一些步骤,然后你写代码一步步去模拟那些步骤就行.这类题目主要属于基础题,但是当然如果需要模拟的步骤足够恶心的话,还是比较麻烦的... 具体模拟的例子在之后的练习中会遇到的,按照题目要求一步步做就行,一般算法难度比较小. 2,暴力: 顾名思义,暴力就是...饿,暴力.比如说题目让从平面上的10个点中取三个点,让他们形成的三角

最最最最最最最最基础的C---C简介和基础算法

C简介 C是一门程序设计语言,面向过程的语言.于1972至1973年设计出来的语言. C具有32个关键字,9种控制语句,34种运算符. 函数是C的基本单位:一个C程序的执行总是从main函数开始的. C程序运行步骤:源程序--编译-->目标文件--执行-->可执行目标程序. 基础算法 完整的程序设计=数据结构+算法+程序设计方法+语言工具 算法特效: 1.有穷性:一个算法包含有限的操作步骤 2.确定性:确定算法的每一个步骤都是确定的 3.有零个或多个输入 4.有一个或多个输出 5.有效性:算法

复习基础算法的感想

晚上做杭电OJ,第二题是一个比较直观的题,我也是太直观了.贴出代码,供自己反省,从7点15分一直做到结束,wa9次....orz....看来自己的算法功底还差的很远很远. 接下的几天,学习大白上的基础 算法部分. #include<iostream> #include<stdio.h> #include<cstring> using namespace std; char a[20],b[20]; char c[20]; void shuchu(int num) { i

二叉树基础算法总结

记录一些二叉树的基础算法 二叉树节点结构: typedef struct TreeNode{ int val; struct TreeNode *left; struct TreeNode *right; }TreeNode,*Node; 1.遍历 前.中.后序递归遍历: void pre_order_traversal(TreeNode *root){ if(root! = NULL){ visit(root); pre_order_traversal(root->left); pre_ord

PHP基础算法

1.首先来画个菱形玩玩,很多人学C时在书上都画过,咱们用PHP画下,画了一半. 思路:多少行for一次,然后在里面空格和星号for一次. <?php for($i=0;$i<=3;$i++){ for($j=0;$j<=3-$i;$j++){ echo ' '; } for($k=0;$k<=2*$i;$k++){ echo '*'; } echo '<br/>'; } 2.冒泡排序,C里基础算法,从小到大对一组数排序. 思路:这题从小到大,第一轮排最小,第二轮排第二小

基础算法(一)

首先必须得说本人对算法研究不深,一些简单的就得想半天,老是这样感觉不太好,遂记录下一些常见的基础算法,避免尴尬.不足之处请各位多多指教. 其次,用vs写C语言程序时可能会出现如下错误:错误 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online hel

java基础算法之排序

总体基础算法总结 http://blog.csdn.net/lilong_dream/article/details/23356513 基础算法之排序 http://www.cnblogs.com/qqzy168/archive/2013/08/03/3219201.html 基础算法之数组.字符串 String l="helloworld";toCharArray 将字符串转化成数组char[] a1=l.toCharArray(); toCharArray()  //获得字符串对应