排序法

选择排序法:

 1 class Sort{
 2     public static void main(String[] args) {
 3         int[] array = {3, 9, 10, 5, 48, -23};//创建并初始化数组
 4         selectSort(array);                //调用方法
 5         System.out.println();
 6     }
 7
 8     public static void swap(int[] arr,int a,int b){
 9         int temp = arr[a];
10         arr[a] = arr[b];
11         arr[b] = temp;
12     }
13
14     public static void selectSort(int[] arr){
15         for(int x=0; x<arr.length-1; x++)
16             for(int y=x+1; y<arr.length; y++){
17                 if (arr[x]>arr[y]){
18                     swap(arr, x, y);     //调用方法
19                 }
20             }
21         for(int i=0; i<arr.length; i++)
22         System.out.print("arr["+i+"] = "+arr[i]+" , ");  //打印输出
23     }
24 }
 1 class Sort_2{
 2     public static void main(String[] args) {
 3         int[] array = {3, 9, 10, 5, 48, -23};//创建并初始化数组
 4         selectSort_2(array);                //调用方法
 5         System.out.println();
 6     }
 7
 8       public static void swap(int[] arr,int a,int b){
 9         int temp = arr[a];
10         arr[a] = arr[b];
11         arr[b] = temp;
12     }
13     //使用数组下标法
14     public static void selectSort_2(int[] arr){
15         for(int x=0; x<arr.length-1; x++){
16             int num = arr[x];
17             int index = x;
18             for(int y=x+1; y<arr.length; y++){
19                 if(num>arr[y]){
20                     num = arr[y];
21                     index = y;
22                 }
23             }
24             if(index!=x)
25                 swap(arr,x,index);
26         }
27         for(int i=0; i<arr.length; i++)
28         System.out.print("arr["+i+"] = "+arr[i]+" , ");  //打印输出
29     }
30 }

冒泡排序法:

 1 class Sort{
 2     public static void main(String[] args){
 3         int[] array = {3, 5, 20, -21, 26, 12};
 4         bubble(array);
 5         printArray(array);
 6         System.out.println();
 7     }
 8
 9     public static void swap(int[] arr,int a,int b){
10         int temp = arr[a];
11         arr[a] = arr[b];
12         arr[b] = temp;
13     }
14
15     public static void printArray(int[] arr)
16     {
17         System.out.print("[");
18         for(int x=0; x<arr.length; x++)
19         {
20             if(x!=arr.length-1)
21                 System.out.print(arr[x]+", ");
22             else
23                 System.out.println(arr[x]+"]");
24         }
25     }
26
27     public static void bubble(int[] arr){
28         for(int x=0; x<arr.length-1; x++)
29             for(int y=0; y<arr.length-1-x; y++){
30                 if(arr[y]>arr[y+1]){
31                     swap(arr,y,y+1);
32                 }
33             }
34     }
35 }
时间: 2024-10-23 15:33:45

排序法的相关文章

希尔排序法(缩小增量法)

2016-10-25 16:51:49 首先,要明白希尔排序法是什么.它是一种改进版的直接插入法,它是将整个无序列分割成若干小的子序列分别进行插入排序的方法. 1 #include<stdio.h> 2 3 //希尔排序法 4 void shell_sort(int a[],int n); 5 int main() 6 { 7 int i; 8 int a[6]; 9 printf("please enter five numbers:\n"); 10 for(i=1;i&

javascript选择排序法

选择排序原理: 1.第一次遍历中,找到最小的数组元素然后用第一个数组元素交换它. 2.第二次遍历中,找到第二小的数组元素然后用第二个数组元素交换它. 3.依次类推.如果包含N个元素,那么将在最多N-1次遍历之后完成排序. 示例: 示例结果显示: <!doctype html><html><head><meta charset="utf-8"><title>选择排序法</title><script> va

常用排序法之一 ——冒泡排序法和选择排序法

语言中,常用的算法有:冒泡排序.快速排序.插入排序.选择排序.希尔排序.堆排序以及归并排序等等.那么从这篇开始,我将分别总结下这几种排序法. 先交代一下,我们将要排序的数组定义为arr[N],即数组arr[]包含N个元素. ## 冒泡排序法(Bubblesort) ## 所谓排序法,就是对一组无序的序列进行有序的排序(从大到小或者从小到大),那么什么叫冒泡排序法,冒泡排序法又是怎么实现数组的有序排列呢. 冒泡排序法的具体实现方法是这样的,从数组的第一个元素`arr[0]`开始,两两比较**(`a

137.Single Number II(法1排序法2STL容器map哈希法3位运算法4改进的位运算)

Given an array of integers, every element appears three timesexcept for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement itwithout using extra memory? HideTags Bit Manipulation #pragma once

算法大神之路----排序(选择排序法)

选择排序法,顾名思义,就是把特定的数据选择出来进行排序. 选择排序法有两种方式 在所有的数据中,当由大到小排序,那么就将最大值放到第一个位置 如果由小到大排序,那么就将最小值放到第一个位置 以由小到大排序举例,当排序时候,扫描整个数据,拿第一个依次与其他做比较,如果其他数据比第一个大,或者相等,那么就不交换,如果其他数据比第一个数小,那么就交换二者的位置,扫描结束后,则从第二个数开始,依次扫描. 方法分析 无论是最坏还是最好情况,甚至是平均情况下,都需要对全部数据进行扫描,找到最大或最小值,因此

使用选择排序法对数组进行排序

int[] array = new int[10]; //生成随机数对象 Random random = new Random(); for (int i = 0; i < array.length; i++) { array[i] = random.nextInt(50); System.out.print(array[i]+" "); } System.out.println("\n排序后:"); int index; for (int i = 1; i 

【合并排序法】

/* 合并排序法 */ #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX1 10 #define MAX2 10 #define SWAP(x,y) {int t; t = x; x = y; y = t;} int partition(int[], int, int); void quicksort(int[], int, int); void mergesort(int[], i

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

PHP 选择排序法

选择排序法的思路就是再第一次循环中,假设第一个数是最小的:然后跟第二个数比较,一直比到最后,找出最小值,然后把最小值跟第一个数的位置互换:再进行下一次循环,找出最小值跟第二个位置的数互换:一直循环数组的个数减去1次:数组就成了有序的了: <?php $arr=array(3,1,7,-1); for ($i=0;$i<count($arr)-1;$i++){     $min=$arr[$i];     $mindex=$i;   for ($j=$i+1;$j<count($arr);