zoukankan      html  css  js  c++  java
  • C语言 指针练习冒泡排序法

    以前用数组写过各种排序方法,现在用指针来试下了“冒泡排序法”。

    代码如下:

    #include <stdio.h>
    void print_result(float *,int);
    void bubble_sort(float *,int);

    int main()
    {
    int i;
    float array[10];
    float * pointer;
    printf("请输入10个数:\n");
    for(i=0;i<10;i++)
    {
    scanf("%f",&array[i]);
    }
    pointer=array;
    bubble_sort(pointer,10);
    print_result(pointer,10);


    return 0;
    }

    void print_result(float *p,int n)
    { //输出结果
    int k;
    for(k=0;k<n;k++)
    {
    printf("%g\t",*(p+k));
    }
    }

    void bubble_sort(float *pt,int n)
    {//全用指针的冒泡排序法
    int i,j;
    float tempnum;

    for(i=0;i<n;i++){
    for(j=i+1;j<n;j++)
    {
    if(*(pt+j)>* (pt+i))
    {
    tempnum=*(pt+i);
    * (pt+i)=* (pt+j);
    * (pt+j)=tempnum;
    }
    }
    }
    }

    配一个以前写的排序的图和代码片段:

    void BubbleSort(int arr[],int n)
    {
    //冒泡排序法
    printf("\n\n冒泡排序的过程:\n");
    int i,j,temp;
    for(i=0;i<n;i++)
    {
    for(j=0;j<n-1;j++)
    {
    if(arr[j+1]<arr[j]){
    temp=arr[j];
    arr[j]=arr[j+1];
    arr[j+1]=temp;
    }
    printf("%3c ",arr[j]); //输出每轮的数,不含最后一个。
    }
    printf("%3c \n",arr[j]);//每轮的最后一个数
    }


    }



  • 相关阅读:
    HDOJ 1202 The calculation of GPA
    HDOJ 1197 Specialized Four-Digit Numbers
    HDOJ 1196 Lowest Bit(二进制相关的简单题)
    HDOJ 1194 Beat the Spread!(简单题)
    NOIP2018游记
    CF1043
    洛谷P1280 尼克的任务
    洛谷P1155 双栈排序
    SPOJ6340 ZUMA
    chessboard
  • 原文地址:https://www.cnblogs.com/ikodota/p/learn_pointer_bubble_sort.html
Copyright © 2011-2022 走看看