#include<stdio.h>
#define cnt 6 //定义排序个数
//冒泡排序优化
void Bubble_Sort(int A[],int N)
{
for(int P = N - 1; P >= 0;P--)
{
int flag = 0; //定义一个flag推断之后的序列是否有序
for(int i = 0;i < P;i++) //一趟冒泡
{
if(A[i] > A[i+1]) //一次一次的冒泡
{
int temp = A[i+1];
A[i+1] = A[i];
A[i] = temp;
}
flag = 1;
}
if(flag == 1) //说明之后的序列以及有序不用在排
break;
}
}
//插入排序
void Insertion_Sort(int A[],int N)
{
for(int P = 1;P < N;P++) //初始数字 把P【0】当成基本数字 然后进行插入N张牌 for循环运行顺序先运行1 然后推断是否满足条件
{
int Tmp = A[P]; //存放须要插入的数字
int i; //记录移动位置
for(i = P;i>0&&A[i-1]>Tmp;i--) //对须要插入的数进行移动
{
A[i] = A[i-1];
}
A[i] = Tmp;
}
}
int main()
{
int a[cnt] = {5,7,4,1,9,6};
Insertion_Sort(a,cnt);
for(int i=0;i< cnt;i++)
{
printf("%d ",a[i]);
}
getchar();
}
冒泡排序优化以及插入排序(本文凝视较少适合有一定基础的观看)
原文:http://www.cnblogs.com/lxjshuju/p/7091518.html