/*Name: selectSort and insertSortCopyright: nyist Author: 润青 Date: 01/10/18 19:30Description: 实现了简单选择排序与直接插入排序
*/#include<stdio.h>
int a[100];
int n;
void selectSort();
void insertSort();
int main(){scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a[i]);} insertSort();for(int i=0;i<n;i++){printf("%d ",a[i]);}
}
void selectSort(){//从待排序部分元素中选取最小的,令其与待排序元素的...
原创文章,转载请注明来自钢铁侠Mac博客http://www.cnblogs.com/gangtiexia 直接插入排序(Straight Insertion Sort)的基本思想是将新记录插入到已经排好序的有序表中,初始有序表只有无序表的第一个数据,依次对无序表每个数据进行直接插入排序,从而得到了有序表,具体步骤为若新记录<有序表高位l.r[j],则设置哨兵有序表后移,j+1=j重复第2步,直至新纪录>=有序表中的j记录,则j+1就是要插入的位置从而得到一个新的、记录数增加...
直接插入排序是最简单的排序算法,基本思想是每次将一个带排序的记录,按其关键字大小插入到前面已排序好的子序列中,直到全部数据完成。其相应的C代码实现如下: #include "stdio.h"void InsertSort(int a[], int n) //直接插入排序{ int i,j,temp=0; for(i=1;i<n;i++) { if(a[i]<a[i-1]) { temp = a[i]; for(j=i-1;j>=0 && a[j]>temp;j--) { a[j+1]=a[j]; } a[j+1]=temp; // } }}void main(){ int a[10]={0,6,67...
之前自学数据结构的时候看过C语言版的四种基本排序法,C语言都忘的差不多了,最近有空就用php将四种排序法重新写了一遍,复习一下日益生疏的算法。直接贴上代码。";print_r($var);echo "";
}$arr=array(33,11,22,66,55,44,88,99,77);
printf("**原数组**");
p($arr);
/**
*冒泡排序法
* @param $arr 排序数组
*思路:和相邻的数字对比,每次对比如果左边比右边大则交换位置。
*两个节点,一个方向:两次循环次数,冒泡方向(即$j的...
以下为原创内容,禁止转载
C语言实现各排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序
1.引入所需头文件
#include <stdio.h>
#include <malloc.h> #动态申请内存
#include <stdlib.h>
#include <time.h>
#include <sys/timeb.h>
#include <string.h>2.函数声明
int* makeData(int total, int m, int n);//生成一个含有total个介于m和n之间的无序数的数组
long long getTimeStamp();//读...
1 选择排序#include <stdio.h>//交换两个数void swap(int* a,int* b){if(a != b){*a = *a ^ *b;*b = *a ^ *b;*a = *a ^ *b;}
}//从大到小排序
//pSortArray为需要排序的数组,size为数组中元素的个数
void swapSort(int* pSortArray, int size)
{int iMax;int iMaxIndex;for(int i = 0;i < size-1;i++){iMaxIndex = i;for(int j = i + 1;j < size;j++){if(pSortArray[iMaxIndex] < pSortArray[j])iMaxIndex = j; //找出未排序部分最...
插入排序类似纸牌玩家整理手中的纸牌:每次取一张纸牌,并在取下一张之前,将它放在适当的位置,使手中的所有纸牌按顺序排列。
时间复杂度:O(N2)
空间复杂度:O(1)
稳定性:稳定// 插入排序
void insertion_sort(int list[], int listSize) {int i, j;int next;for (i = 1; i < listSize; ++i) {next = list[i];for (j = i - 1; j >= 0 && next < list[j]; --j) {list[j + 1] = list[j];}list[j + 1] = next;}
}
排序
(参考大话数据结构第9章,归并排序没有看,快速排序的优化部分没有看)
相关概念:
1.内排序与外排序:根据在排序过程中待排序的记录是否全部被放置在内存中分为内排序和外排序。本文讨论的7种排序算法都是内排序。 2.稳定性:能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同。即:如,如果Ai==Aj,Ai原来在Aj位置前,排序后Ai仍然是在Aj位置前
冒泡排序:
bubbleSort0:最基础版冒泡排序...