• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

C语言问题比较简单而且常用的排序方法有哪些

大少爷安安 2019-04-20 浏览量:756
在C语言中比较简单而且常用的排序方法有哪些(求程序)
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 最简单的应该是冒泡排序法了,代码和时间结果如下:

    02.png

    • 发布于 2019-04-21
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:3
  • 最简单的就是冒泡排序法,实现的方法就是假设要从小往大排,那先从头开始遍历一遍,如果将前面那个数与后面那个数对比,如果前面那个数大的,就交换两个数的位置,如此循环多次,知道不再需要交换为止,这种方法需要花费的时间比较多

    还有一种选择排序法,就是每次选出最大或者最小的,将它放在本次要排序的元素的最前面,然后下一次再选的时候上一次的那个最值就不再参与


    • 发布于2019-04-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 有直接插入排序法,冒泡排序法,这两种比较多,

    如果排列顺序很乱就用冒泡法,如果是个别颠倒顺序就用直接插入法比较快,冒泡的比较慢,程序网上有的

    • 发布于2019-04-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 选择排序也比较简单

    在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。

    void print(int a[] int n int i){  
        cout<<"第"<<i+1 <<"趟 : ";  
        for(int j= 0; j<8; j++){  
            cout<<a[j] <<" ";  
        }  
        cout<<endl;  
    }  
    /** 
     * 数组的最小值 
     * 
     * @return int 数组的键值 
     */  
    int SelectMinKey(int a[] int n int i)  
    {  
        int k = i;  
        for(int j=i+1 ;j< n; ++j) {  
            if(a[k] > a[j]) k = j;  
        }  
        return k;  
    }  
      
    /** 
     * 选择排序 
     * 
     */  
    void selectSort(int a[] int n){  
        int key tmp;  
        for(int i = 0; i< n; ++i) {  
            key = SelectMinKey(a ni);           //选择最小的元素  
            if(key != i){  
                tmp = a[i];  a[i] = a[key]; a[key] = tmp; //最小元素与第i位置元素互换  
            }  
            print(a  n  i);  
        }  
    }  
    int main(){  
        int a[8] = {31572496};  
        cout<<"初始值:";  
        for(int j= 0; j<8; j++){  
            cout<<a[j] <<" ";  
        }  
        cout<<endl<<endl;  
        selectSort(a 8);  
        print(a88);  
    }  

    • 发布于2019-04-21
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

C语言问题比较简单而且常用的排序方法有哪些