码迷,mamicode.com
首页 > 其他好文 > 详细

排序算法-冒泡——插入——快排

时间:2014-04-29 13:28:21      阅读:364      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   2014   art   for   

冒泡排序,往两个方向泡,一个往小泡,一个网大泡

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void bubble_sort(int *a,int n){
	int temp;
	for(int i=0;i<n;i++)
		for(int j=0;j<n-i-1;j++){
			if(a[j]>a[j+1]){
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
}
void bubble_sort2(int *a,int n){
	int temp;
	for(int i=1;i<n;i++){
		for(int j=n-1;j>=i;j--){
			//放到下面去,表示有多少个元素已经好了
			if(a[j]<a[j-1]){
				temp=a[j];
				a[j]=a[j-1];
				a[j-1]=temp;
			}
		}
	}
}
void main(){
	int test[20];
	srand(time(0));
	for(int i=0;i<20;i++){
		test[i]=rand()%100+4;
		printf("%d ",test[i]);
	}
	printf("\n");
	bubble_sort2(test,20);
	for(int i=0;i<20;i++)
		printf("%d ",test[i]);
}

插入排序

#include <stdio.h>
#include<stdlib.h>
#include<time.h>
void insert_sort(int *data,int n){
	int j;
	int key;
	for(int i=1;i<n;i++){
		j=i-1;//前面一个元素
		key=data[i];
		while(key<data[j]&&j>=0){
			data[j+1]=data[j];
			j--;
		}
		//跳出循环的时候是data[j]<key即data[i]
		//data[j]=data[i];
		data[j+1]=key;
	}
}
void main(){
	//random()
	srand((unsigned)time(0));
	int test[20];
	for(int i=0;i<20;i++){
		test[i]=rand()%100;
		printf("%d ",test[i]);
	}
	printf("\n");
	insert_sort(test,20);
	for(int i=0;i<20;i++)
		printf("%d ",test[i]);
	getchar();
	getchar();

}

快排算法,划分有两种算法

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//划分元素,有两种方法
int partition(int * a,int p,int r){
	int i=p-1;
	int key=a[r];
	int temp;
	for(int j=p;j<r;j++){
		if(a[j]<=key){
			//侵占,小于key的元素增加,交换元素
			i++;
			temp=a[j];
			a[j]=a[i];
			a[i]=temp;

		}
	}
	a[r]=a[i+1];
	a[i+1]=key;
	return i+1;
}
void myquick_sort(int *a,int p,int r){
	if(p<r){
		int q=partition(a,p,r);
		myquick_sort(a,p,q-1);
		myquick_sort(a,q+1,r);

	}
}

void main(){
	int test[100];
	srand(time(0));
	for(int i=0;i<30;i++){
		test[i]=rand()%100+5;
		printf("%d ",test[i]);
	}
	printf("\n");
	myquick_sort(test,0,29);
	for(int i=0;i<30;i++)
		printf("%d ",test[i]);
}


排序算法-冒泡——插入——快排,码迷,mamicode.com

排序算法-冒泡——插入——快排

标签:style   blog   io   2014   art   for   

原文地址:http://blog.csdn.net/sn_zzy/article/details/24701759

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!