• 冒泡排序&快速排序


    冒泡排序
    相邻的两个数两两比较,如果两数逆序,则交换。
    n个数需要进行n-1趟的两两比较。
    10个数进行冒泡排序,输出结果
    #include <stdio.h>
    int main() {
        int a[10],i,j,temp;
        printf("请输入10个数:");
        for(i=0;i<10;++i)
            scanf("%d",&a[i]);
        printf("
    ");
        for(j=0;j<9;++j)
            for(i=0;i<9-j;++i){
                if(a[i]>a[i+1]){
                    temp=a[i];
                    a[i]=a[i+1];
                    a[i+1]=temp;
                }
            }
        printf("the sorted numbers:");
        for(i=0;i<10;i++)
            printf("%d ",a[i]);
        return 0;
    }

    快速排序

    #include<iostream>
    using namespace std;
    typedef struct{
        int data[50];
        int length;
    }SqList;
    int partition(SqList &L,int low,int high){
        L.data[0]=L.data[low];
        int pivotkey=L.data[0];
        while(low<high){
            while(low<high&&L.data[high]>=pivotkey) --high;
            L.data[low]=L.data[high];
            while(low<high&&L.data[low]<=pivotkey) ++low;
            L.data[high]=L.data[low];
        }
        L.data[low]=L.data[0];
        return low;
    }
    void quickSort(SqList &L,int low,int high){
        int pivotloc;
        if(low<high){
            pivotloc=partition(L,low,high);
            quickSort(L,low,pivotloc-1);
            quickSort(L,pivotloc+1,high);
        }
    }
    int main(){
        SqList L;
        cin>>L.length;
        for(int i=1;i<L.length;++i)
            cin>>L.data[i];
        quickSort(L,1,L.length-1);
        cout<<"快排后的数字顺序为"<<endl;
        for(int j=1;j<L.length;++j)
            cout<<L.data[j]<<" ";
        return 0;
    }
  • 相关阅读:
    四则运算
    四则运算二
    学习进度条
    四则运算一
    课堂测试七
    问题与思考6
    问题与思考5
    问题与思考04
    Android SDK 目录说明
    如何判断视频的比例(4:3/16:9)和分辨率?
  • 原文地址:https://www.cnblogs.com/Makerr/p/14667794.html
Copyright © 2020-2023  润新知