1. 程式人生 > >冒泡排序優化以及插入排序(本文凝視較少適合有一定基礎的觀看)

冒泡排序優化以及插入排序(本文凝視較少適合有一定基礎的觀看)

插入排序 pre amp 是否 get sort i+1 art etc

#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();
}


冒泡排序優化以及插入排序(本文凝視較少適合有一定基礎的觀看)