冒泡,选择排序

#include<stdio.h>
#include<stdlib.h>
#define MAX_SIZE 101

//swap function bug
//void swap(int x,int y) swap change the location of the two number
void swap(int &x,int &y)//why need &
{
int t;
t=x;
x=y;
y=t;
}

void sort(int list[],int n)
{
int i,j,min;
for(i=0;i<n-1;i++)
{
min=i;
for(j=i+1;j<n-1;j++)
{
if(list[j]<list[min])
{
min=j;
}
}
//please think about it
//what‘s better ?
swap(list[i],list[min]);
}
}//the main ideal is looking for the smallest number

int main(void)
{
int i,n;
int list[MAX_SIZE];//定义数组
printf("enter the number to generate:");
scanf("%d",&n);

/*The input sign n must between 1 and 100 */

if(n<1 || n>MAX_SIZE)
{
/*int fprintf(FILE *stream,char *format,[argument]) */
fprintf(stderr,"improper value of n");
exit(EXIT_FAILURE);
}

//input number
printf("input number:\n");
for (i=0;i<n;i++)
{
/*randomlys generate number*/
list[i]=rand()%1000;
//it‘s good ?
printf("%d ",list[i]);
}
printf("\ninput number end\n");

//sort function
printf("sorting...\n");
sort(list,n);
printf("sort ok\n");

/*print out sorted numbers*/
printf("output number\n");
for(i=0;i<n;i++)
{
printf("%d ",list[i]);
}
printf("\noutput end\n");

exit(0);
}

时间: 2024-11-01 20:56:35

冒泡,选择排序的相关文章

c - 冒泡/选择排序.

1 #include <stdio.h> 2 3 void 4 bubbleSort(int *, int); 5 6 void 7 selectSort(int *, int); 8 9 void 10 show(int *, int); 11 12 void 13 swap(int *, int, int); 14 15 int 16 main(void) { 17 int a[8] = {555, 2, 3, 77, 66, 5, 0, -3}; 18 int len = 8; 19 s

冒泡 选择排序

算法一直是编程的基础,而排序算法是学习算法的开始,排序也是数据处理的重要内容.所谓排序是指将一个无序列整理成按非递减顺序排列的有序序列.排列的方法有很多,根据待排序序列的规模以及对数据的处理的要求,可以采用不同的排序方法.那么就整理下网上搜索的资料,按自己的理解,把C语言的8大排序算法列出来. 普通意义上,排序算法可以分为三大类: 1 交换类排序法2 插入类排序法3 选择类排序法 一.交换类排序法 所谓交换排序法是指借助数据元素之间互相交换进行排序的方法.冒泡排序与快速排序法都属于交换类排序方法

c语言冒泡和选择排序

冒泡排序代码: //冒泡排序 void arr(){     int arr[] = {3,2,4,1};     int count = sizeof(arr)/sizeof(arr[0]);     for (int i=0; i<count-1; i++) {         for (int j=0; j<count-i-1; j++) {                         if (arr[j]<arr[j+1]) {                 int tem

分享一个多线程实现[冒泡][选择][二分法]排序的例子

线程的使用规则我将会在我另一篇文章<Delphi中使用比较少的一些语法>中进行介绍,这里只开放一篇Delphi原代码的算法: //工程文件:Sort_MultiThread.dpr program Sort_MultiThread; uses  Forms,  SortUI in 'SortUI.pas' {fmSortUI},  SortUC in 'SortUC.pas'; {$R *.res} begin  Application.Initialize;  Application.Mai

算法小结-冒泡、选择排序、直接插入排序

1.冒泡排序法:比较相邻的两个元素,如果前边比后边大,就对调两元素,一趟下来,最大的数放在最右边,就像泡泡上升一样. 代码: /* * 冒泡 */ static void bubble_sort(int[] array) { for (int i = 0; i < array.length; i++) { for (int j = i; j < array.length; j++) { if (array[i] > array[j]) { int temp = array[i]; arr

java冒泡算法和选择排序法

1 package test.auto; 2 3 import java.util.Arrays; 4 5 import org.apache.bcel.generic.FieldGenOrMethodGen; 6 7 public class Maopao0807{ 8 9 public static void main(String[] args) { 10 //冒泡,每个相邻进行比较 11 int a[]={ 6, 5, 3, 1, 8, 7, 2, 4 , 0}; 12 for (int

快排,冒泡排,选择排序,希尔排序

package cn.hncu.dataStruct; public class SortMethods { /* 算法好坏的评价指标(一般只在n值非常大的时候才会考虑,如n取10万): * 1.时间复杂度: 通俗点,就是指程序运行的快慢(时间)---通常用计算机的运算(算术,赋值)次数来代替 * 2.空间复杂度: 占用内存空间的大小---通常用程序中使用了多少变量(栈内存.堆内存),这些变量总共占了多少内存 */ public static void main(String[] args) {

一招教你搞定c语言中冒泡和选择排序

一.选择排序 很多学习C语言的同学都被这两种排序而难倒.每次拿到这样一组数字就不知道从何下手了,要不就是那些运用的不太熟悉,每次写起代码来又得花一大半时间让费在这排序上,总是找不到一种好的办法去学习它.那么接下来,我将我所学到的排序方法分享给大家,告诉你们以后遇到这种排序千万不能急.当然,很多企业面试的时候种排序也是必考的,所以我们务必要把他们搞懂,不能让这么小小的排序阻挡了我们前进的步伐.好了,那我们来看看吧! 我选择的方法是函数调用的方法,将排序的具体方式通过函数调用到main函数中执行,具

选择法和冒泡法排序接口

#define ret_ok 0 #define ret_err 1 #define ARRAY_SIZE 10 /*选择法排序*/ int Choice_Sort(int array[],int array_len) { int i = 0; int j = 0; int iMin = 0; int iTemp = 0; int iFlag = 0; for(i=0;i<array_len-1;i++) { iMin = i; for(j=i+1;j<array_len;j++) { if(

冒泡法和选择排序法(比较容易写混)

1 #include<stdio.h> 2 3 4 //冒泡排序法 5 6 void bubbling(int a[],int n); 7 8 //选择排序法 9 void choose(int a[],int n); 10 int main() 11 { 12 int i; 13 int s[6]; 14 printf("please enter five numbers:\n"); 15 for(i=1;i<6;i++) 16 { 17 scanf("%