zoukankan      html  css  js  c++  java
  • 排序算法的实现

    一.冒泡排序

    #include <cstdio>
    #include <cstring>
    int main()
    {
    	int a[10]={5,8,16,7,9,10,14,12,2,1};
    	int i,j;
    	for(i=0;i<9;i++)
    	{
    		for(j=0;j<9-i;j++) 
    		{
    			if(a[j]>a[j+1])
    			{
    				int t=a[j];
    				a[j]=a[j+1];
    				a[j+1]=t; 
    			}
    		}
    	}
    	for(i=0;i<10;i++)
    	{
    		printf("%d ",a[i]);
    	}
    	
    	return 0;
    }


    二.归并排序

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn = 100;
    int A[maxn];
    void merge(int A[],int l1,int r1,int l2,int r2)
    {
    	int i = l1,j = l2;
    	int t[maxn],index = 0;
    	while(i<=r1&&j<=r2)
    	{
    		if(A[i]<A[j])
    			t[index++] = A[i++];
    		else
    			t[index++] = A[j++];
    	} 
    	while(i<=r1)
    		t[index++] = A[i++];
    	while(j<=r2)
    		t[index++] = A[j++];
    	for(i = 0;i < index;i++)
    	{
    		A[l1+i] = t[i];
    	}
    }
    void mergesort(int A[],int left,int right)
    {
    	if(left < right)
    	{
    		int mid = (left  + right )/2;
    		mergesort(A,left,mid);
    		mergesort(A,mid+1,right);
    		merge(A,left,mid,mid+1,right);	
    	}
    }
    
    int main()
    {
    	int i,n;
    	cin>>n;
    	for(i = 0;i < n;i++)
    	{
    		cin>>A[i];
    	}
    	mergesort(A,0,n-1);
    	for(i = 0;i < n;i++)
    	{
    		cout<<A[i]<<" ";
    	} 
    	cout<<endl;
    	return 0;
    }


    三.快速排序

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn = 100;
    int A[maxn];
    int partition(int A[],int left,int right)
    {
    	int temp = A[left];
    	while(left < right){
    		while(left < right&&A[right] > temp)	right--;
    		A[left] = A[right];
    		while(left < right&&A[left] <= temp)	    left++;
    		A[right] = A[left];
    	}
    	A[left] = temp;
    	return left;
    }
    void quicksort(int A[],int left,int right)
    {
    	if(left < right){
    		int pos = partition(A,left,right);
    		quicksort(A,left,pos-1);
    		quicksort(A,pos+1,right);
    	}
    }
    int main()
    {
    	int i,n;
    	cin>>n;
    	for(i = 0;i < n;i++)
    	{
    		cin>>A[i];
    	}
    	quicksort(A,0,n-1);
    	for(i = 0;i < n;i++)
    	{
    		cout<<A[i]<<" ";
    	} 
    	cout<<endl;
    	return 0;
    }



  • 相关阅读:
    IDEA成功注册方法
    H2O中的随机森林算法介绍及其项目实战(python实现)
    scala语言简介及其环境安装
    SparkSQL---实战应用
    Spark算子---实战应用
    利用python的KMeans和PCA包实现聚类算法
    Spark MLlib回归算法------线性回归、逻辑回归、SVM和ALS
    m个苹果放在n个盘子里面有多少种放法?(动态规划)
    Java_CookieUtil
    Jquery_AjaxFileUpload插件的使用记录
  • 原文地址:https://www.cnblogs.com/qiangz/p/8447214.html
Copyright © 2011-2022 走看看