c语言排序问题简单的选择排序

问题描述

c语言排序问题简单的选择排序

#include#define N 20void px(int a[],int n){ int i,j,t,min; for(i=0;ia[j]) { t=a[j]; a[j]=min; min=t; } } printf("%d ",a[i]); }}int main(){ int a[N],n,i; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",a[i]); px(a,n); for(i=0;i<n;i++) printf("%d ",a[i]); return 0;} 这是c语言中的一个选择排序,用vc编译和链接都没错,执行的时候出错了,各位大神请指点一二。

解决方案

 #include "stdafx.h"

#include<stdio.h>
#define N 20

void px(int a[],int n)
{
    int i,j,t,min;
    for(i=0;i<n;i++)
    {
        min=i;
        for(j=i+1;j<n;j++)
        {
            if(a[min]>a[j])
            {
                min=j;
            }
        }
                t=a[i];
                a[i]=a[min];
                a[min]=t;
        //printf("%d	",a[i]);
    }
}

int main()
{
    int a[N],n,i;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    px(a,n);
    for(i=0;i<n;i++)
        printf("%d	",a[i]);
    return 0;
}

解决方案二:

void px(int a[],int n)
{
int i,j,t,min;
for(i=0;i
{
min=i;
for(j=i+1;j
{
if(a[min]>a[j])
{
min=j;
}
}
t=a[i];
a[i]=a[min];
a[min]=t;
//printf("%d ",a[i]);
}
}

int main()
{
int a[N],n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
px(a,n);
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}

解决方案三:

include "stdafx.h"

#include
#define N 20

void px(int a[],int n)
{
int i,j,t,min;
for(i=0;i
{
min=i;
for(j=i+1;j
{
if(a[min]>a[j])
{
min=j;
}
}
t=a[i];
a[i]=a[min];
a[min]=t;
//printf("%d ",a[i]);
}
}

int main()
{
int a[N],n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
px(a,n);
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}

解决方案四:

c语言简单选择排序
c语言选择排序
c语言选择排序

时间: 2024-10-30 18:57:32

c语言排序问题简单的选择排序的相关文章

Go语言实现冒泡排序、选择排序、快速排序及插入排序的方法_Golang

本文实例讲述了Go语言实现冒泡排序.选择排序.快速排序及插入排序的方法.分享给大家供大家参考.具体分析如下: 算法是程序的灵魂,而排序算法则是一种最基本的算法.排序算法有许多种,这里介绍4中排序算法:冒泡排序,选择排序,快速排序和插入排序,以从小到大为例. 一.冒泡排序 冒泡排序的原理是,对给定的数组进行多次遍历,每次均比较相邻的两个数,如果前一个比后一个大,则交换这两个数.经过第一次遍历之后,最大的数就在最右侧了:第二次遍历之后,第二大的数就在右数第二个位置了:以此类推. 复制代码 代码如下:

PHP简单选择排序算法实例_php技巧

简单的选择排序算法:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换 复制代码 代码如下: <?php     class Sort{         /**          * 简单的选择排序          *          * @param unknown_type $arr          */         public function selectSort(&$arr) {            

简单了解C语言中直接插入排序与直接选择排序实现_C 语言

直接插入排序基本思路: 1. 从a[0]开始,也就是从1个元素开始是有序的,a[1]~a[n-1]是无序的. 2. 从a[1]开始并入前面有序的数组,直到n-1. #include <stdio.h> #define N 5 void insertsort(int a[], int n); void swap(int *x, int *y); void insertsort(int a[], int n){ int i,j; for(i=1; i<n; i++){ for(j=i; j&

VC++实现选择排序算法简单示例_C 语言

本文以一个非常简单的实例说明VC++选择排序算法的实现方法,对n个记录进行n-1趟简单选择排序,在无序区中选取最小记录. 具体实现代码如下: #include<iostream> using namespace std; //简单选择排序 void SelectSort(int r[ ], int n) { int i; int j; int index; int temp; for (i=0; i<n-1; i++) //对n个记录进行n-1趟简单选择排序 { index=i; for

c语言-简单选择排序 时间限制: 40 Sec 内存限制: 128 MB

问题描述 简单选择排序 时间限制: 40 Sec 内存限制: 128 MB 题目描述 编一程序用简单选择排序方法对n个整数排序(从大到小). 对n个数进行降序排列,简单选择排序的算法思想如下: 1)首先通过n-1次比较,从n个元素中找出值最大的元素,将它与第一个元素交换.(第一趟排序). 2)再通过n-2次比较,从剩余的n-1个元素中找出值次大的元素,将它与第二个元素交换.(第二趟排序). 3)重复上述操作,共进行n-1趟排序后,排序结束. 输入 先输入整数个数n(n<=100000) 然后输入

C语言实现选择排序、直接插入排序、冒泡排序的示例_C 语言

选择排序选择排序是一种简单直观的排序算法,其核心思想是:遍历数组,从未排序的序列中找到最小元素,将其放到已排序序列的末尾. 时间复杂度:O(n^2) 稳定性 :不稳定 /* * @brief selection sort */ void selection_sort(int a[], int n) { int i, j, min, tmp; for (i = 0; i < n - 1; ++i) { min = i; for (j = i+1; j < n; ++j) { if (a[j] &

C语言 选择排序算法详解及实现代码_C 语言

选择排序是排序算法的一种,这里以从小到大排序为例进行讲解. 基本思想及举例说明 选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置:然后,选出第二小的数,放在第二个位置:以此类推,直到所有的数从小到大排序. 在实现上,我们通常是先确定第i小的数所在的位置,然后,将其与第i个数进行交换. 下面,以对 3  2  4  1 进行选择排序说明排序过程,使用min_index 记录当前最小的数所在的位置. 第1轮 排序过程 (寻找第1小的数所在的位置) 3  2  4  1(最初, m

图片-C语言选择排序,最后一个数字后的三角形是什么鬼??

问题描述 C语言选择排序,最后一个数字后的三角形是什么鬼?? 代码在这: #include<stdio.h> int main() { void sort(int *x,int n); int i,*p,a[5]; p=a; printf("please enter 5 numbers:n"); for(i=0;i<5;i++) { scanf("%d",p++); } p=a; sort(p,5); for(p=a,i=0;i<5;i++)

必须掌握的八种排序(3-4)--简单选择排序,堆排序

3.简单选择排序 (1)基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换: 然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止. (2)理解图 第一次 : 08最小 和21交换位置 第二次: 除第一个位置的08外 16最小 和25交换位置 以此类推 (3)代码实现 public static void selectSort(int[] a) { int position = 0; for (int i = 0; i < a.length