1. 程式人生 > >插入排序和氣泡排序

插入排序和氣泡排序

#include "stdafx.h"
#include<cstdio>
#include<iostream>

using namespace std;
const int maxn=110;
const int inf=0x7fffffff;
typedef long long ll;
int n;
int a[maxn];
void insertsort(){

	for(int i=2;i<=n;i++)
	{ 
		if(a[i]<a[i-1]){
			a[0]=a[i];
			int j;
			for(j=i-1;a[j]>a[0];j--)
				a[j+1]=a[j];

			a[j+1]=a[0];
		}


	}


}

void insertsort(){

	for(int i=2;i<=n;i++)
	{if(a[i]>a[i-1]){
		a[0]=a[i];
		int l=1,r=i-1;
		while(l<=r){
			int mid=(l+r)/2;
			if(a[mid]>a[0])r=mid-1;
			else l=mid+1;

		}
		for(int j=i-1;j>=r+1;j--)
			a[j+1]=a[j];
		a[r+1]=a[0];

	}}}
void BubbleSort(){
	int flag;
	for(int i=0;i<n-1;i++)
	{flag=0;
	for(int j=n-1;j>i;j--)
		if(a[j]<a[j-1]){
			swap(a[j],a[j-1]);
			flag=1;		
		}
		if(flag)return;	
	}}