zoukankan      html  css  js  c++  java
  • c array sort

      1 //
      2 // Created by jia on 19/12/18.
      3 //
      4 #include "../header.h"
      5 //information
      6 void print_label(char* string){
      7     printf("%s
    ", string);
      8 }
      9 //oupt array
     10 void arr_output(int n, int arr[]){
     11     for(int i = 0; i < n; i ++){
     12         printf("arr[%d] = %4d	", i, arr[i]);
     13     }
     14 
     15     printf("
    
    ");
     16 }
     17 //swap two datas to make sure the first is smaller than the second
     18 void data_swap(int* a, int* b){
     19     if(*a > *b){
     20         int temp = *a;
     21         *a = *b;
     22         *b = temp;
     23     }
     24 }
     25 
     26 //improved bubble sort
     27 void improvedbubblesort(int n, int arr[]) {
     28     bool sorted = true;
     29     for (int i = 0; i < n; i++)
     30         for (int j = 0; j < n - i - 1; j++) {
     31             data_swap(&arr[j], &arr[j + 1]);
     32             sorted = false;
     33         }
     34     if (sorted) {
     35         return;
     36     }
     37     arr_output(n, arr);
     38 }
     39 //bubble sort
     40 void bubblesort(int n, int arr[]){
     41     for(int i = 0; i < n; i ++)
     42         for(int j = 0; j < n - i - 1; j ++){
     43             data_swap(&arr[j], &arr[j + 1]);
     44         }
     45     arr_output(n, arr);
     46 }
     47 //other sort
     48 void othersort(int n, int arr[]){
     49     for(int i = 0; i < n; i ++)
     50         for(int j = i; j < n; j ++){
     51             data_swap(&arr[i], &arr[j]);
     52         }
     53     arr_output(n, arr);
     54 }
     55 
     56 //insertion sort
     57 void insertionsort(int n, int arr[]){
     58     for(int i = 0; i < n; i ++){
     59         int temp = arr[i];
     60         bool hasmoved = false;
     61         bool notplaced = true;
     62         for(int j = i - 1; j >= 0; j --){
     63             if(arr[j] > temp){
     64                 //shift numvers till you find it's right location
     65                 arr[j + 1] = arr[j];
     66                 hasmoved = true;
     67             }else{
     68                 arr[j+1] = temp;
     69                 notplaced = false;
     70                 break;
     71             }
     72         }
     73         if(hasmoved && notplaced){
     74             arr[0] = temp;
     75         }
     76     }
     77     arr_output(n, ARR);
     78 }
     79 
     80 void selectionsort(int n, int arr[]){
     81     for(int j = n -1; j < n; j --){
     82         int pos = 0;
     83         for(int i = 1; i <= j; i ++){
     84             if(arr[i] > arr[pos]){
     85                 pos = i;
     86             }
     87             data_swap(&arr[pos], &arr[j]);
     88         }
     89     }
     90     arr_output(n, ARR);
     91 }
     92 void mergesort(int n, int arr[]){
     93 
     94 }
     95 
     96 //void (*cmc_result)(int n, int arr[]) function pointer to point the function
     97 void getsort(int t, void (*cmc_result)(int n, int arr[])){
     98     switch(t){
     99         case 0:{
    100             print_label("bubble sort:");
    101             //bubblesort(N, ARR);
    102             cmc_result(N, ARR);
    103         } break;
    104         case 1:{
    105             print_label("other sort:");
    106             othersort(N, ARR);
    107             //cmc_result(N, ARR);
    108 
    109             //cmc_result = othersort;
    110         } break;
    111         case 2:{
    112             print_label("improved sort:");
    113             cmc_result(N, ARR);
    114         } break;
    115         case 3:{
    116             print_label("insertion sort:");
    117             cmc_result(N, ARR);
    118             //cmc_result = othersort;
    119         } break;
    120         case 4:{
    121             print_label("selection sort:");
    122             cmc_result(N, ARR);
    123         } break;
    124     }
    125 }
  • 相关阅读:
    python接口自动化之发送post(四)
    python接口自动化之发送get(三)
    python接口自动化之fiddler使用(二)
    python读取yaml配置文件
    python接口自动化测试之http协议(一)
    python接口自动化测试之根据excel中的期望结果是否存在于请求返回的响应值中来判断用例是否执行成功
    python3读取、写入、追加写入excel文件
    python UI自动化之处理多窗口
    python UI自动化之js操作
    python UI自动化之切换iframe
  • 原文地址:https://www.cnblogs.com/zjhangia/p/10231103.html
Copyright © 2011-2022 走看看